Reactjs 如何打开不带';在浏览器中不属于我的域-反应本机Webview

Reactjs 如何打开不带';在浏览器中不属于我的域-反应本机Webview,reactjs,react-native,webview,expo,Reactjs,React Native,Webview,Expo,您好,我正在使用react native的webview显示网站url。 我希望当用户单击网站内的链接(不属于我的域的行)时,它会打开用户的浏览器,并显示该链接 如果我有这个域名example.com,并且当我点击example.com/about-us按钮时它会变成这样(这没问题) 但是,如果我有这个domain example.com,并且当我单击另一个domain.com的按钮时它会变成这样(这应该在用户浏览器中打开,而不是在我的webview应用程序中打开) 我看过这个主题,但它没有给我

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

如果我有这个域名example.com,并且当我点击example.com/about-us按钮时它会变成这样(这没问题)

但是,如果我有这个domain example.com,并且当我单击另一个domain.com的按钮时它会变成这样(这应该在用户浏览器中打开,而不是在我的webview应用程序中打开)

我看过这个主题,但它没有给我我需要的东西。我正在webview应用程序中使用Expo。

这是我现在的代码

这是一个现场演示

const-appurl='1〕https://github.com/facebook/react-native';
函数UrlApp(){
返回(
{this.webview=ref;}}
source={{uri:appurl}}
onNavigationStateChange={(事件)=>{
如果(event.url!==appurl){
this.webview.stopLoading();
Linking.openURL(event.url);
}
}}
星载状态
scalesPageToFit
javaScriptEnabled
style={{marginTop:Constants.statusBarHeight}
/>
);
}

无错误

您可以插入JavaScript阻止链接打开,并将链接发送回RN,而不是使用
窗口.ReactNativeWebView.postMessage
,然后使用
链接.openURL
打开它,我不明白,您的意思是用户单击浏览器上的链接并在webview上打开应用程序的页面吗?不是。您知道webview应用程序是浏览器,但您的url仅正确。比如说,如果我打开我的webview应用程序浏览我的网站内容,然后我发现了一个类似的链接,这就导致了google.com。我希望链接只在Chrome中打开,等等。。。浏览器不在我的webview应用程序中。webview应用程序就像HTML中的Iframe,你有你的url,但如果你的url有另一个指向另一个网站的内容,这将更改你指向该网站的url,我不希望在我的webview应用程序中发生这种情况。建议在web上处理链接链接,而不是由React-native处理。是的,但这是一个webview应用程序,因此有一个链接是很正常的,因为它是webview应用程序中的一个网站。我只想在chrome或类似浏览器中打开不属于我的域的链接,但不在我的webview应用程序中。请你重写小吃让我前进,因为我不知道为什么在我阅读了React and Expo中的文档后仍要在我的应用程序中使用它
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}}
      />
  );
}