有没有办法强制WebView链接点击外部打开?

时间:2016-02-10 00:46:03

标签: react-native

我有一个加载静态HTML内容的WebView组件:

  <WebView
    style={{flex: 1}}
    html={content}
  />

问题是,如果有人点击链接,它会在应用中打开,而我强迫它使用Linking在Safari中打开。这可能吗?

1 个答案:

答案 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升级打破它。但它仍处于积极发展阶段,所以你应该没事。