如何从 webview 打开 safari 移动应用程序中的链接

新手上路,请多包涵

这里有很多主题,但它们都需要本机代码交互才能工作。

就我而言,有必要能够直接从 url 执行此操作,而无需与我的移动应用程序进行任何交互。

我试过了:

<a href="safari://google.com" target="_blank">Open Google in Safari</a>

<a href="webkit://google.com" target="_blank">Open</a>

并基于 这篇文章

 <script>
    $(document).on('click', 'a[target="_blank"]', function (ev) {
      var url;

      ev.preventDefault();
      url = $(this).attr('href');
      window.open(url, '_system');
    });
  </script>

但没有任何效果。

任何人都知道如何解决这个问题?

原文由 jose920405 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 454
1 个回答

有一个技巧。我们知道 iOS Safari 有这些可用的 URL 方案:

(HTTP) — http://websiteurl (HTTPS) — https://websiteurl x-web-search:// (FTP) — ftp://locationtofileonftpserver

如果您使用 Click here 或 window.open(”http://somewebsite”)。它总是使用当前浏览器打开 url。

x-web-search://?[keyword] - 它将切换到 Safari 应用程序但搜索关键字

幸运的是我们还有 ftp://。它将切换到 Safari 应用程序。但首先您需要在您的主机中设置一个公用文件夹并创建一个桥接 html 文件以将用户重定向回 http:

ftp://{你的地址}/bridge.html

window.open(”https://yoururl”, “_self”);

现在,您可以在任何浏览器的默认 Safari 应用程序中打开您的网站。

原始答案在这里: JS - Mobile - Open Safari from any browser


更新(2021-01): Apple 似乎在 iOS 上修复了这个问题,这不再有效了!

原文由 Goon Nguyen 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题