react-native - 在 React Native WebView 中启用弹出窗口

我有一个 react native 应用程序(使用 react native 0.43.3),它使用 webview 显示用于网上银行的网页。该站点会加载一个带有登录页面的弹出窗口。

对于 ReactNative WebView,此弹出窗口不会显示。在 native android 中启用弹出窗口显示我发现我需要制作 webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true),但在使用 ReactNative WebView 时找不到设置此参数的方法。

有没有一种方法可以使用 ReactNative 提供的 WebView 来实现这一点?

最佳答案

前阵子我需要 fork react-native 框架,因为在经过一些研究后,当在 react-native 和 native(iOS 和 Android)之间使用 javaScript 桥接时,iOS WebView 中存在一个错误我得出的结论是,我必须 fork repo 协议(protocol)才能修复它,所以我做到了。 一周前,我还需要 webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(boolean) 方法,所以我继续将它与 view.getSettings().setSupportZoom( bool 值)view.getSettings().setSupportMultipleWindows(支持)

如果需要,here is my fork . 请记住,这意味着您需要从源代码为 android 构建 react-native,可以找到有关此事的更多信息 here , 老实说有点忙,但在某些情况下是值得的。 fork 来自 react-native 0.44.0,你还应该记住,如果你使用我的 fork ,意味着当它们出来时你可能无法更新版本,所以这最终取决于你的需要,最坏的情况是你总是可以 fork 我的 fork 并将它与最新版本合并。

你可以通过修改你的 package.json 文件然后运行 ​​npm update react-native 来用 npm 获取我的 fork

"dependencies": {
   //... 
   "react-native": "samermurad/react-native#rctWebView-legacy-fix",
   //...
 }

我计划提取修复程序并构建一个单独的 WebView 组件,但我目前太忙了:/

希望对您有所帮助:)

https://stackoverflow.com/questions/48118159/

相关文章:

reactjs - 如何用 React 组件替换 Markdown 渲染的 HTML 标签?

reactjs - 为什么 React 在 parent 之前渲染 child ?

julia - 如何以编程方式从 Julia 中的字符串标识符定义变量?

powerbi - power bi 中的计算列不更新结果

r - 如何使用 R 中的 Leaflet 将两个坐标与一条线连接起来

php - Laravel Dusk 测试 click() 不工作

postgresql - CDC 更改数据捕获开始时间 - Postgres 复制

reactjs - 如何将 WebM 格式的音频输入传递给 Google Speech API

python - 如何绘制带箭头的轴线?

r - 根据两个坐标之间的最近距离对矩阵进行排序