flutter - 如何使用条形码结果在flutter中打开webview
问题描述
我正在使用 BarcodeScanner 包。我扫描二维码后得到结果。我的问题是如何使用该结果然后打开网站。这是我的代码:
Future scan() async{
Completer<WebViewController> _controller = Completer<WebViewController>();
try {
String barcode = await BarcodeScanner.scan();
setState(() {
this.barcode = barcode;
print(this.barcode);
WebView(
initialUrl: this.barcode,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
),
});
} on PlatformException catch (e) {
if (e.code == BarcodeScanner.CameraAccessDenied) {
setState(() {
this.barcode = 'The user did not grant the camera permission!';
});
} else {
setState(() => this.barcode = 'Unknown error: $e');
}
} on FormatException{
setState(() => this.barcode = 'null (User returned using the "back"-button before scanning anything. Result)');
} catch (e) {
setState(() => this.barcode = 'Unknown error: $e');
}
}
}
解决方案
如果您在此处使用 Webview,则在您从扫描仪收到 QR 码后,您需要导航到新屏幕。像这样
Navigator.push(
context,
MaterialPageRoute(builder: (context) => WebView(initUrl: data[index].homeLink))
);
否则,您可以使用 url_launcher 插件 https://pub.dev/packages/url_launcher
推荐阅读
- reactjs - ReactJs 嵌套列表仅折叠一个列表项
- blazor-server-side - Blazor 导航开始 - 结束事件
- cube.js - 为什么我在创建 Cube.js 仪表板应用程序时从 VueSourceSnippet.js 收到语法错误?
- python - pandasql 中的指数或幂函数
- windows - 这台电脑在充电时不断弹出并不断打开新标签
- java - 在已排除的文件上找不到符号
- javascript - Javascript - 在firestore中对文档进行排序,从中获取数据
- python - Python乌龟模块碰撞在最终级别不起作用
- git - Git 标记条件不适用于 Github 操作
- python - 使用 requests 模块从 aspx 站点下载 zip 文件