2010-12-09 49 views
62

iOS上的iTunes,App Store和YouTube明确注册http:// ... URL方案以打开他们的应用程序。可能在iOS中处理您自己的http URL方案?

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

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

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

回答

1

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

我无法看到苹果这样做,要么...

+0

无赖。苹果当然做到了。电子邮件(或短信)自己和iTunes商店链接(http:// itunes ....)。点击iPhone上的邮件。应用程序商店将打开,而不会首先进入Safari。 – baswell 2010-12-09 23:31:19

+0

不,对于电子邮件,有(明显)mailto:方案,对于短信这是短信:,并在iTunes的情况下,我认为他们使用普通的http :,在第一次通话,但然后重定向到其他东西(可以透明地做,所以用户不会看到它)。 – Eiko 2010-12-10 08:48:46

+0

@HappyFlow不确定你想告诉我什么? – Eiko 2013-08-20 15:16:16

5

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

我写了一篇博客文章中针对此位置:Using custom schemes and passing data between iOS apps.

我希望这有助于。

59

,你可以做到这一点的方式“HTTP://”网址(我认为苹果和Spotify这样做)这是:

  1. 注册自定义URL方案like the other answers have shown

  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> 

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

33

的iOS 9支持Universal Links,让iOS系统,而无需经过Safari浏览器用户推出基于标准的http:// URL(基于主机名)的应用程序。

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

对于没有iOS 9的用户,可以使用Smart Banners来减轻体验。