10

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

这就是它在 Android 上的工作方式。Reddit is Fun应用就是一个很好的例子:

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

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

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

有谁知道以这种方式打开应用程序的方法?例如,点击“ http://reddit.com/ ”链接时是否可以打开 reddit 应用程序?

编辑:我发现非常有趣的是,iOS 已经在某种程度上通过 YouTube 链接支持这一点

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

4

4 回答 4

7

现在在他们所谓的“通用链接”中启用了 ios: 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

于 2015-12-24T20:43:28.693 回答
2

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

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

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

我希望这就是你要找的。

于 2014-09-19T15:55:17.127 回答
2

您发现的是正确的,只能使用自定义方案来完成。

于 2014-09-19T15:08:57.903 回答
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 上正确打开。

于 2015-02-24T21:12:22.250 回答