0

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

尝试了几件事:

  1. 将 prop 设置useWebKit为 TRUE (WkWebview) 和 FALSE (UIWebview)
  2. 设置 proponShouldStartLoadWithRequest为每个 URL 返回 true

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

4

1 回答 1

2

TLDR;

RNCWKWebView.m在under 方法中添加以下代码didMoveToWindow

wkWebViewConfig.preferences.javaScriptCanOpenWindowsAutomatically = YES;
wkWebViewConfig.preferences.javaScriptEnabled = YES;

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


解释

他们这里的关键是javaScriptCanOpenWindowsAutomatically根据Apple 文档,它实际上设置为 NO 作为 iOS 的默认值

在 iOS 中默认值为 NO,在 macOS 中默认值为 YES。

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

于 2020-03-24T08:09:10.673 回答