Flutter webview 插件禁用弹出窗口

suz*_*y20 5 android webview ios flutter

例如,我想用户 webview 加载嵌入视频“ https://openload.co/embed/jth7dlXpS9o/48726236_1799258073534949_6159238421089878016_n.mp4 ”。但是,当我触摸播放按钮时,广告会打开新的网页或弹出窗口。如何禁用弹出页面?我尝试使用 onStateChanged 和 onUrlChanged 事件,但仍然遇到问题。能给个建议或者帮助吗,谢谢

Oma*_*att 1

如果您使用webview_flutter,则可以通过在加载 url 时阻止重定向请求来阻止弹出窗口。利用包的 WebViewController,可以在onNavigationRequest.

WebViewController webViewController = WebViewController()
    ..setJavaScriptMode(JavaScriptMode.unrestricted)
    ..setNavigationDelegate(
      NavigationDelegate(
        onProgress: (int progress) {
          // Update ProgressBar
        },
        onPageStarted: (String url) {},
        onPageFinished: (String url) {},
        onWebResourceError: (WebResourceError error) {},
        onNavigationRequest: (NavigationRequest request) {
          if (request.url.startsWith('$BLOCKED_URL_PATTERN')) {
            // Prevent blocked URL from loading on WebView
            return NavigationDecision.prevent;
          }
          return NavigationDecision.navigate;
        },
      ),
    )
    ..loadRequest(Uri.parse('$INITIAL_URL'));
Run Code Online (Sandbox Code Playgroud)

然后在WebView上使用控制器。

WebViewWidget(controller: webViewController)
Run Code Online (Sandbox Code Playgroud)