2

我在使用 Webview 时通过下面的代码实现了这一点

            navigationDelegate: (NavigationRequest request) {
              if (request.url.startsWith('https://google.com/')) {
                print('allowing navigation to $request');
                return NavigationDecision.navigate;
              } else  {
                print('Opening Default Browser');
                launchURL(request.url); // to open browser 
                return NavigationDecision.prevent;
              }
            },

但是当我使用inappwebview时,上面的代码并没有起作用。使用Inappwebview在浏览器中打开外部网址怎么办?

InAppWebView:https ://pub.dev/packages/flutter_inappwebview

4

1 回答 1

3

您可以shouldOverrideUrlLoading:()用于 InAppWebView。

            shouldOverrideUrlLoading: (controller, shouldOverrideUrlLoadingRequest) async {
              var url = shouldOverrideUrlLoadingRequest.url;
              var uri = Uri.parse(url);



              if ((uri.toString()).startsWith('https://google.com')) {
                return ShouldOverrideUrlLoadingAction.ALLOW;
              }else {
                launchURL(uri.toString());
                return ShouldOverrideUrlLoadingAction.CANCEL;
              }
            },
于 2020-12-19T18:52:31.647 回答