【问题标题】:How to enable pop up in Web View?如何在 Web 视图中启用弹出窗口?
【发布时间】:2020-03-23 09:05:01
【问题描述】:

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

尝试了一些东西:

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

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

【问题讨论】:

  • 我猜这个方向是从 WKWebView 指向“createWebViewWithConfiguration”,这个方法假设是由window.open()触发

标签: reactjs uiwebview wkwebview react-native-ios react-native-webview


【解决方案1】:

TLDR;

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

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

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


说明

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多