判断是否运行在React Native WebView中

4

我目前正在开发一个使用WebView组件显示远程URI的RN应用程序,在通过此URI加载的JS中,我想确定是否在RN WebView内部。

有人已经遇到过这个问题吗? 有人可以帮我吗?

非常感谢!


试一下这个库:https://github.com/faisalman/ua-parser-js 检查 Android 上的 WebView 和 iOS 上的 WebKit - maxi-code
3个回答

5
React Native创建了一个桥接到WebView的通道,为此它覆盖了window.postMessage的值。
他们将原始实现保存在window.originalPostMessage下。
因此,您可以依靠存在window.originalPostMessage来检测您是否在React Native中。
在Android上执行此操作的代码在这里,在iOS上则在这里

4
您也可以这样做:

injectedJavaScript="window.isRNWebView=true"


你可能还想添加 injectedJavaScriptBeforeContentLoaded。不知何故,它在第一次加载时没有注入JS代码。 - ozgrozer

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接