首页 > 解决方案 > 如何使用条形码结果在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');
      }
    }
  }

标签: flutterdart

解决方案


如果您在此处使用 Webview,则在您从扫描仪收到 QR 码后,您需要导航到新屏幕。像这样

  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => WebView(initUrl: data[index].homeLink))
  );

否则,您可以使用 url_launcher 插件 https://pub.dev/packages/url_launcher


推荐阅读