可以在iOS中处理自己的http URL方案吗?

时间:2010-12-09 23:01:22

标签: ios url-scheme

iTunes上的iTunes,App Store和YouTube都清楚地注册了http:// ... URL方案来打开他们的应用程序。

任何人都可以这样做,而不仅仅是你自己的协议吗?

我想这样做的原因是我正在为节日制作应用程序。我希望“截取”指向网站上特定页面的链接,然后启动应用程序(如果已安装)。

到目前为止,我没有太多运气

5 个答案:

答案 0 :(得分:62)

对于“http://”网址(以及我认为Apple和Spotify所做的)这样做的方法是:

  1. 注册自定义网址计划like the other answers have shown

  2. 设置您的HTTP网址以指向真实网页。

  3. 如果在iOS上,请在该页面上放置一个脚本以重定向到您的自定义网址。

  4. 例如,这是一个示例页面,它将带您进入特定用户或Twitter网站的Twitter应用程序,具体取决于您是在网络上还是在iOS设备上:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>Twitter</title>
    </head>
    <body>
        <script type="text/javascript">
            var username = document.location.search.substr(1);
            document.location.replace(
                "standalone" in window.navigator ?
                'twitter:@'+username :              // iOS
                'http://twitter.com/'+username);    // others
        </script>
    </body>
    </html>
    

    在此处试试:http://bl.ocks.org/d/3153819/?mckamey

答案 1 :(得分:42)

iOS 9支持Universal Links,允许iOS基于标准http://网址(基于主机名)启动应用,而无需用户通过Safari。

它需要一些Web服务器配置(您需要一个网站),但一旦设置,注册的应用程序将打开链接而不是Safari。

对于没有iOS 9的用户,您可以使用Smart Banners来简化体验。

答案 2 :(得分:4)

不幸的是,我不认为你能做到这一点。 您可以注册自己的自定义方案,例如yourFestival://,并将来自外部世界的数据(短信,电子邮件,其他应用)传递到您的应用。

我在这里写了一篇博文:Using custom schemes and passing data between iOS apps.

我希望这会有所帮助。

答案 3 :(得分:2)

不,您只能注册自定义方案。

我无法看到Apple这样做,或者......

答案 4 :(得分:0)

这个问题很旧,但是由于多年以后我现在浏览此页面,几年后,当我寻找相同问题的答案时,我将立即添加如何做的答案:

使用通用链接。首先在developer.apple.com中启用“关联域”或您的App ID。然后将您的域添加为Xcode中的applink(选择“目标”->“签名和功能”->“相关域”),然后在您的网站上创建一个apple-app-site-association文件。

详细说明here