我有一个加载静态HTML内容的WebView
组件:
<WebView
style={{flex: 1}}
html={content}
/>
问题是,如果有人点击链接,它会在应用中打开,而我强迫它使用Linking
在Safari中打开。这可能吗?
答案 0 :(得分:0)
稍微搜索一下,我看到从RN应用程序打开浏览器的唯一方法是使用Linking或LinkingIOS API。那么问题是,如何使您的Webview能够使用该API。以下是两种可能的解决方案:
1)注册您的应用处理的自己的URL方案。例如。对myApp://this/is/a/link.html。然后处理该方案的所有传入事件并对API进行相应的调用。注册计划很简单,效果很好。这对我来说似乎是最强大的方法。
2)使用一个库,让Webview直接与它的paren视图对话。例如。 https://github.com/alinz/react-native-webview-bridge。
然后在页面中放入一些JS代码,onClick将链接URL发送到父视图,然后调用API。我刚刚使用过那个项目,它起到了魅力的作用,直到我需要的一次RN升级打破它。但它仍处于积极发展阶段,所以你应该没事。