如何在浏览器中打开不属于我的域的链接-React Native Webview

时间:2019-06-15 00:01:38

标签: reactjs react-native webview expo

嗨,我正在使用react native的webview显示网站网址。 我希望当用户单击网站内的链接(不属于我的域的行)时,它将使用该链接打开用户的浏览器。

如果我拥有这个域example.com,并且当我单击按钮example.com/about-us时它变为类似的样子(没关系)

但是,如果我有这个域example.com,并且当我单击按钮anotherdomain.com时它变为类似域名(应该在用户浏览器中打开,而不是在Webview应用中打开)。

我已经看过这个主题,但是没有满足我的需求。我正在Webview应用程序中使用Expo。 https://stackoverflow.com/a/40382325/9776729

这是我现在的代码

这是现场演示https://snack.expo.io/@maher-aldous/webview

const appurl = 'https://github.com/facebook/react-native';

function UrlApp() {
  return (
      <WebView
        ref={(ref) => { this.webview = ref; }}
        source={{uri: appurl}}
        onNavigationStateChange={(event) => {
          if (event.url !== appurl) {
            this.webview.stopLoading();
            Linking.openURL(event.url);
          }
        }}
        startInLoadingState
        scalesPageToFit
        javaScriptEnabled
        style={{marginTop: Constants.statusBarHeight}}
      />
  );
}

没有错误

1 个答案:

答案 0 :(得分:0)

您可以注入JavaScript,以防止链接打开,而可以使用window.ReactNativeWebView.postMessage而不是使用Linking.openURL将链接发送回RN。