你可以从HTTP网址方案打开iOS应用吗?

时间:2014-09-19 14:35:31

标签: android ios url-scheme custom-url

我想打开我的iOS应用程序,类似于如何在Android上完成,即使用特定的网址而不是自定义URL协议。

这就是它在Android上的运作方式。 Reddit很有趣应用就是一个很好的例子:

  • 用户在他们的邮件应用程序,浏览器应用程序或类似的东西中。
  • 用户点击指向reddit帖子的链接。对于此示例,链接为" http://reddit.com/r/example"
  • Reddit很有趣应用已设置为处理" http://reddit.com/"链接
  • Android会显示一个对话框,为用户提供以下选项:
    • 网络浏览器
    • 中打开链接
    • Reddit很有趣
    • 中打开链接

我一直试图在Apple iOS URL Schemes上找到参考资料,但到目前为止我发现的所有内容都表明您需要拥有自定义URL协议,并且您无法使用http://。你必须使用像reddit://'这样的东西。

将实际网址指定为URL方案的好处在于,如果您没有Reddit是Fun应用程序,浏览器会自动打开页面,这将是一个很好的后备。如果您使用iOS中的自定义URL协议,如果您的设备未安装该应用,则无法回退。没有迹象表明它失败了。没有迹象表明它试图做任何事情。

有没有人知道以这种方式打开应用程序的方法?例如,点击&{39; http://reddit.com/'是否可以打开reddit应用。链路?

编辑:我发现非常有趣的是iOS已经supports this to some extent with YouTube links

编辑:看起来似乎无法在iOS上完全按照我的意愿行事。但是,this post对如何做有一些很好的建议。我希望自2009年以来情况会有所改变。

4 个答案:

答案 0 :(得分:5)

现在可以在ios上启用它们所谓的“Universal Links”: https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

如果你的源是基于html的,有一个Cordova插件可以支持这个: https://github.com/nordnet/cordova-universal-links-plugin#android-web-integration

答案 1 :(得分:1)

您发现的内容是正确的,只能通过自定义方案完成。

答案 2 :(得分:1)

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

Http链接会通过调用与您的应用相关联的自定义网址,将您重定向到检查您的iOS应用是否已安装的网页。

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

我希望这就是你要找的东西。

答案 3 :(得分:1)

您实际上可以执行此操作,但它需要您在服务器上托管要链接到的每个reddit文章的页面。我们在Branch自行构建了动态版本,这样我们就不必每次都手动创建页面,而且我们也会检测iOS与Android。但是,对于手动创建页面,步骤如下:

如果您要发送链接到http://reddit.com/r/example的电子邮件,则需要创建一个页面并将其托管在您的服务器上(例如http://yourapp.com/hosted-links/r/example)。它应该是这样的:

<!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>

现在您可以链接到您的服务器http://yourapp.com/hosted-links/r/example,无论用户是否拥有该应用,它都会在iOS上正常打开。