我有一个 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/