【问题标题】:Flutter - Disable navigation InAppWebViewFlutter - 禁用导航 InAppWebView
【发布时间】:2021-04-09 23:16:48
【问题描述】:

我是 Flutter 的新手,我想在其他小部件之间放置一个 Web 视图,我正在使用 InAppWebView 颤振来做到这一点,但我想阻止用户在点击时导航到其他页面在 web 视图内的按钮上。我是否必须为 iOS 和 Android 编写一些本机代码来阻止导航?

谢谢

【问题讨论】:

    标签: flutter flutter-inappwebview


    【解决方案1】:

    类似的东西:

    InAppWebView(
    ....
     shouldOverrideUrlLoading: (controller, navigationAction) async {
      final uri = navigationAction.request.url!;
      if(whitenAvigationHosts.contains(uri.host)){
        return NavigationActionPolicy.ALLOW;
      }
      return NavigationActionPolicy.CANCEL;
    })
                    
    

    【讨论】:

    • 这个解决方案对我有用,谢谢。
    【解决方案2】:

    要禁用将用户导航到另一个页面,您可以使用 onPageCommitVisible 回调来确定用户点击重定向到另一个页面的 url,因此只需在其中调用 goBack

     InAppWebView(
            onPageCommitVisible: (con,uri){
              print("url ${uri.toString()}");
              con.goBack();
            },
    
          ),
    

    【讨论】:

      【解决方案3】:

      您可以通过如下导航委托属性阻止在 webview 中导航:

      WebView(
              debuggingEnabled: true,
              initialUrl: _currentURL,
              onWebViewCreated: (controller) {
                _controller = controller;
                return _controller;
              },
              onPageFinished: (url) {
                if (url.contains(ConstUtils.course)) {
                  updateProfile();
                }
              },
              navigationDelegate: (navigation) => NavigationDecision.prevent,
              onWebResourceError: (error) {
                NavigationUtils(context).popCurrentPage();
              },
              onPageStarted: (url) {
                
              },
              javascriptMode: JavascriptMode.unrestricted,
            ),
      

      【讨论】:

      • 它在 android 上运行,但在 iOS 中,网页甚至没有加载。
      • 我是原生安卓开发者,对iOS不太了解。但我认为这是配置问题,而不是这个包的问题。检查其他来源此问题已得到解决。
      • 问题是询问包裹flutter_inappwebview而不是webview_flutter
      猜你喜欢
      • 2022-10-21
      • 2023-03-31
      • 2020-12-25
      • 2021-07-11
      • 2021-06-19
      • 2021-10-13
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多