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

bas*_*ell 67 url-scheme ios

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

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

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

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

mck*_*mey 61

对于"http://"URL(以及我认为Apple和Spotify所做的)这样做的方法是:

  1. 注册自定义URL方案,如其他答案所示.

  2. 设置HTTP URL以指向真实网页.

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

例如,这是一个示例页面,它将带您进入特定用户或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>
Run Code Online (Sandbox Code Playgroud)

试试这里:http://bl.ocks.org/d/3153819/?mckamey

  • 如果你的应用没有安装怎么办? (27认同)
  • @NeoWang Apple的方式并不好.Android允许定义方案,主机,路径和端口,我没有听说过任何问题.始终允许用户选择他们想要打开URL的应用程序,因此在用户不知道的情况下不会发生劫持.此外,在Android中,如果用户不希望应用程序打开它,则保证浏览器能够比iOS更具动态性. (9认同)
  • 也可以在指向自定义方案的页面上使用隐藏的iFrame.如果失败,没有人注意到任何事情.如果成功则将控件从页面转移到应用程序. (3认同)

Mar*_*ams 45

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

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

对于没有iOS 9的用户,您可以使用智能横幅来减轻体验.

  • 谢谢.这应该是现在接受的答案. (5认同)

Eik*_*iko 1

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

我也不认为苹果会这样做......