2010-01-19 89 views
38

我是一名新手iPhone开发人员,撰写的应用程序可能会成为网站的“移动版本”。iPhone应用程序:我可以通过网站中的链接打开应用程序吗?

我想知道是否可以从网站中的链接启动我的应用程序。因此,例如,有人进入我们的iPhone Safari网站,点击链接,我们的应用程序启动。

这可能吗?
如果是这样,我也可以“传递参数”给我启动的应用程序?正如...
点击不同的链接可以让他们在发布时在应用中获得不同的东西。

谢谢!
Daniel

回答

51

某些应用程序具有启动它们的URL方案。如果一个应用发布了这个方案(或者如果你在他们的捆绑中挖掘),你可以启动它。例如,一个假想的推特应用可能会启动一个twitterapp://这里+是+我的+推特网址。如果您使用正确的URL方案预装应用程序,则也可以为您的应用程序执行此操作。

下面是来自info.plist中的样本URL方案:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.standalone.cooltwitterapp</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>twitterapp</string> 
     </array> 
    </dict> 
</array> 
+1

也会回答相同的问题。 +1 – 2010-01-19 17:50:08

+2

当您点击“http:// youtube.com /”链接(即不是“youtube://”)时,Youtube应用程序是如何打开的? – andrewtweber 2013-02-28 17:04:20

+1

@andrewtweber操作系统专门处理:http:// developer。 apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007899 – TofuBeer 2013-03-03 22:19:27

6

就可以了,使用custom URI schemes。但请注意,没有应用程序的客户端而不是能够使用链接。

如果是这样,我也可以“传递参数”到我启动的应用程序?

再一次,是的。一旦你的应用程序已经注册了一个给定的计划,这都是你的。

+2

为什么不存储一个cookie,说明客户是否拥有应用程序,并根据cookie显示一个链接或另一个链接。如果您没有找到cookie,请显示一个问题:“您是否安装了XYZ应用程序?”如果他们说“不”,请立即安装。 – iconoclast 2012-04-18 18:32:39

+1

提到的链接不再有效。 – Ju66ernaut 2016-12-12 18:37:53

+0

@ Ju66ernaut更新链接。谢谢。 – jensgram 2016-12-13 10:48:58

9

另外值得注意的是,当您的应用从URL启动时,将调用application:openURL:sourceApplication:annotation:方法。详情请见Apple's Docs

+1

我修复了您的链接(已损坏)。另外他们的文档说handleOpenURL已被弃用,应该使用不同的openURL函数。 – eodabash 2012-02-13 19:05:25

+1

这是正确的,不推荐使用'handleOpenURL:'。改用'application:openURL:sourceApplication:annotation:'代替。 – 2013-12-02 20:00:57

相关问题