Android 您可以从HTTP url方案打开iOS应用程序吗?

Android 您可以从HTTP url方案打开iOS应用程序吗?,android,ios,url-scheme,custom-url,Android,Ios,Url Scheme,Custom Url,我想打开我的iOS应用程序,就像在Android上一样,也就是说,使用特定的web地址而不是自定义URL协议 这就是它在Android上的工作原理。Reddit is Fun应用程序就是一个很好的例子: 用户在其邮件应用程序、浏览器应用程序或其他等效程序中 用户点击reddit帖子的链接。对于本例,链接为“” Reddit很有趣应用程序已设置为处理“”链接 Android会显示一个对话框,为用户提供以下选项: 在Web浏览器中打开链接 在Reddit中打开链接很有趣 我一直在尝试查找有关

我想打开我的iOS应用程序,就像在Android上一样,也就是说,使用特定的web地址而不是自定义URL协议

这就是它在Android上的工作原理。Reddit is Fun应用程序就是一个很好的例子:

  • 用户在其邮件应用程序、浏览器应用程序或其他等效程序中
  • 用户点击reddit帖子的链接。对于本例,链接为“”
  • Reddit很有趣应用程序已设置为处理“”链接
  • Android会显示一个对话框,为用户提供以下选项:
    • 在Web浏览器中打开链接
    • 在Reddit中打开链接很有趣
我一直在尝试查找有关Apple iOS URL方案的参考资料,但到目前为止,我找到的所有信息都表明,您需要自定义URL协议,并且不能使用http://。您必须使用类似“reddit://”的内容

将实际网址指定为URL方案的好处在于,如果您没有Reddit is Fun应用程序,浏览器将自动打开页面,这将是一个很好的回退。在使用自定义URL协议(如iOS)的情况下,如果您的设备未安装应用程序,则不会出现回退。没有迹象表明它失败了。没有迹象表明它试图采取任何行动

有人知道这样打开应用程序的方法吗?例如,单击“”链接时是否可以打开reddit应用程序

编辑:我发现非常有趣的是iOS已经出现了


编辑:看起来没有办法在iOS上完全实现我想要的。但是,对于如何做,他有一些很好的建议。我希望自2009年以来情况会有所改变。

你的发现是正确的,这只能通过自定义方案来实现。

让我告诉你,在iOS上,大多数应用程序是如何实现的,我也希望“Reddit很有趣”

Http链接通过调用与应用程序关联的自定义URL,将您重定向到一个网页,该网页将检查您的iOS应用程序是否已安装

如果返回失败,则加载网页,否则将使用特定视图启动应用程序


我希望这就是您所寻找的。

您实际上可以这样做,但这将要求您在服务器上为您想要链接到的每一篇reddit文章托管一个页面。我们自己构建了一个动态版本,这样我们就不必每次手动创建页面,我们还可以检测iOS和Android。但要手动创建页面,请执行以下步骤:

如果您想向发送电子邮件链接,则需要创建一个页面并将其托管在服务器上(例如)。应该是这样的:

<!DOCTYPE html>
<html>
    <body>
        <script type="text/javascript">
            window.onload = function() {
                // Deep link to your app goes here
                document.getElementById("l").src = "reddit://r/example";

                setTimeout(function() {
                    // Link to the App Store should go here -- only fires if deep link fails                
                    window.location = "http://reddit.com/r/example";
                }, 500);
            };
        </script>
        <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe>
    </body>
</html>

window.onload=函数(){
//您的应用程序的深层链接位于此处
document.getElementById(“l”).src=”reddit://r/example";
setTimeout(函数(){
//应用商店的链接应该放在这里——只有深层链接失败时才会触发
window.location=”http://reddit.com/r/example";
}, 500);
};

现在你可以链接到你的服务器,无论用户是否拥有该应用,它都会在iOS上适当打开

这项功能现在在ios上启用,他们称之为“通用链接”:

如果您的源代码是基于html的,则有一个Cordova插件支持此功能:

使用自定义url方案。在重定向页面上,使用超时处理程序将用户重定向到web版本。不完美,但很接近。Android处理事情的方式与iOS不同。实际上,您可以指定一个web地址作为自定义URL。这对Reddit来说尤其重要,因为它很有趣,因为它是第三方应用程序,他们无法将javascript嵌入Reddit上的页面。Android设备只是检测到用户正在访问reddit.com网页,查看其注册的应用程序,发现某个应用程序可以处理该URL,因此它为用户提供了选择他们希望继续使用哪个应用程序的选项。这是一个出色的系统,我对iOS没有类似的系统感到失望。我想这是因为iOS比android更封闭,而且考虑隐私比分享更重要。当您看到应用程序之间的共享受到限制的总体方法时,这是有意义的。无论如何,在用户的易用性和开放性之间,还是在更可控和更安全之间,争论仍将继续。