【问题标题】:WebView open apps/default browserWebView 打开应用程序/默认浏览器
【发布时间】:2019-08-29 14:53:22
【问题描述】:

我对@9​​87654322@ 很陌生。 HTML 中的 href 标记在应用程序中打开网站。我希望它在手机/设备的默认浏览器中打开链接。哦,我用的是snack.expo。

  • 在 APP 中正在加载网站。在我的网站中,我使用<a href> 'http://maps.google.com/?q=...' 我希望手机的默认浏览器在其默认浏览器中打开此链接,其他href 链接也是如此。
  • 当然,只有带有 target="_blank" 的链接才能在默认浏览器中打开。
  • 如果可以打开应用程序就更棒了。

我用谷歌搜索了很多,但没有成功。

谁知道怎么做?还是它根本不可用?


在我的HTML 代码中,我尝试过这个:

<a href="http://maps.google.com/?q={address}" target="_blank">{address}</a>

部分反应原生代码:

  return (
  <WebView
    source={{ uri: '{website}' }}
  />
);

最好的问候

【问题讨论】:

    标签: android html ios react-native


    【解决方案1】:

    react native 绝对有可能。你可以这样做:

    import {Linking} from "react-native"  
    
           <WebView
    
       source={{uri:"https://mashupguide.net/1.0/html/ch02s05.xhtml"}}
      onShouldStartLoadWithRequest={request => {
        let url = request.url;
        if (url.includes("http://maps.google.com/")) {
          Linking.openURL(url);
    
          return false
        } else {
          return true
        }
      }}
       />
    

    这将阻止WebView 浏览到下一页,而是打开手机的默认浏览器。

    参考:https://github.com/react-native-community/react-native-webview/blob/master/docs/Reference.md#onshouldstartloadwithrequest

    工作示例:https://snack.expo.io/@ammarahmed/sadistic-almond

    【讨论】:

    • 嗨 Ammar,我已将它添加到我的代码中,但它没有打开默认浏览器。该网站正在应用程序中打开。你知道任何其他可能的解决方案吗?
    • 它在这里工作。您确定您尝试从href 打开的网址打开为target="_blank"?尝试从上面的代码中删除 target==="_blank" 并将其从您的 href 标记中删除。此外,如果您可以在此处分享您的 html 代码,这将有助于解决您的问题。谢谢。您还可以提及您打开链接的网站吗?
    • 在 '?q=' 之后是地址。我不必在“url.includes”中提供它可以吗?我现在编辑代码进行测试。
    • imgur.com/X2A7tcO 显示结果的图像。如您所见,maps.google 链接在应用程序中打开。我都做了。旧代码和新代码就像你让我尝试的那样
    • snack.expo.io/@ammarahmed/sadistic-almond 。我在实现上述示例代码的地方做了点心。用你自己的uri 测试它。如您所见,如果安装了 chrome 或 google 地图,它会打开它们。
    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 2011-07-26
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多