是否可以使用自定义 url 方案打开原生 iOS 应用程序,而无需网页直接指向自定义 url?

Is it possible to open an Native iOS app by using Custom url scheme without a webpage directs to custom url?

我正在尝试通过单击电子邮件中的 link 打开本机 iOS 应用程序。我用过"Custom url scheme"。如果我在 safari 浏览器中键入 "test://",则会打开我的本机 iOS 应用程序。但是,如果我在电子邮件中单击 link "test://",那么它会以 http 为前缀,例如“http://test//”,并且不会打开 iOS 应用程序。我经历了很多 links,发现 "iOS needs a Webpage which will redirect to custom url of native iOS App" 可以打开一个应用程序。 Is it possible to open an app from email link without using a webpage redirects to app?

提前,感谢您的帮助!

简单的答案可能是否定的,因为您几乎无法控制各个应用程序处理链接的方式。复杂的答案是你应该做点什么。请注意,它并不总是需要返回一个完整的网页——在 Android 和 Chrome 上,您可以将 307 重定向直接触发到 Chrome 意图。

您可以设置一个简单的 Web 服务器,当被 ping 时,returns `window.location = 'test://'.

或者更好的是,您可以尝试在 iframe 中打开 URI 方案,然后在应用程序不存在时回退到网络 URL。这可以使用以下机制实现:

  1. 关于iOS 9,使用通用链接
  2. 在 Chrome(很快,Firefox 41.0!)中使用 Chrome Intents
  3. 在所有其他浏览器上,使用客户端 javascript

这是客户端的示例 javascript:

<script type="text/javascript">
    window.onload = function() {
        // Deep link to your app goes here
        document.getElementById("l").src = "my_app://";

        setTimeout(function() {
            // Link to the App Store should go here -- only fires if deep link fails                
            window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8";
        }, 500);
    };
</script>
<iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>

这正是我们公司所做的,branch.io。我们一直在处理浏览器和 webview 的变化,因为总是有新的场景需要覆盖。在决定如何将用户深度链接到您的应用程序时,查看用户代理字符串至关重要。