如何在 Web 视图中启用弹出窗口?

How to enable pop up in Web View?

目前正在应用程序中使用 "react-native-webview": "^6.11.1"。加载网站时,会弹出一个需要批准的窗口。我如何 enable/allow webview 显示弹出窗口?

尝试了一些东西:

  1. 将属性 useWebKit 设置为 TRUE (WkWebview) 和 FALSE (UIWebview)
  2. 将每个 URL
  3. 的属性 onShouldStartLoadWithRequest 设置为 return true

更具体地说,当您在桌面 运行 上 Chrome 时,我提到的 pop 如下所示 。应该有一个弹出窗口阻止程序通知,要求您允许弹出窗口。

TLDR;

在方法didMoveToWindow

下的RNCWKWebView.m中追加以下代码
wkWebViewConfig.preferences.javaScriptCanOpenWindowsAutomatically = YES;
wkWebViewConfig.preferences.javaScriptEnabled = YES;

顺便说一句,我正在使用 WKWebView。


说明

这里的关键是 javaScriptCanOpenWindowsAutomatically 根据 Apple docs

实际上设置为 NO 作为 iOS 的默认值

The default value is NO in iOS and YES in macOS.

将此值设置为 YES,表示 JavaScript 是否可以在没有用户交互的情况下打开 windows。在这种情况下,我正在处理我网站 javascript 中的 window.open() 函数。

我在 AndroidIOS

上工作

javaScriptCanOpenWindowsAutomatically=true,

 <WebView
     javaScriptCanOpenWindowsAutomatically=true,
     source={{ uri: URL }}
      />