我正在创建我的iPhone游戏的免费版本 . 我希望在免费版本中有一个按钮,可以将人们带到应用商店中的付费版本 . 如果我使用标准链接
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8
iPhone首先打开Safari,然后打开应用程序商店 . 我使用过直接打开应用程序商店的其他应用程序,所以我知道这是可能的 .
有任何想法吗?应用商店的URL方案是什么?
我正在创建我的iPhone游戏的免费版本 . 我希望在免费版本中有一个按钮,可以将人们带到应用商店中的付费版本 . 如果我使用标准链接
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8
iPhone首先打开Safari,然后打开应用程序商店 . 我使用过直接打开应用程序商店的其他应用程序,所以我知道这是可能的 .
有任何想法吗?应用商店的URL方案是什么?
23 回答
Edited on 2016-02-02
从iOS 6 SKStoreProductViewController类开始介绍 . 您可以在不离开应用的情况下关联应用 . Swift 3.x/2.x 和 Objective-C 中的代码段是here .
来自News and Announcement For Apple Developers .
Additional notes:
您可以将
http://
替换为itms://
或itms-apps://
以避免重定向 .有关命名的信息,请参阅Apple QA1633:
https://developer.apple.com/library/content/qa/qa1633/_index.html .
Edit (as of January 2015):
itunes.com/apps链接应更新到appstore.com/apps . 见上面的QA1633,已经更新 . 一个新的QA1629建议这些步骤和代码从应用程序启动商店:
在您的计算机上启动iTunes .
搜索要链接的项目 .
右键单击或按住Control键并单击iTunes中项目的名称,然后从弹出菜单中选择"Copy iTunes Store URL" .
在您的应用程序中,使用复制的iTunes URL创建
NSURL
对象,然后将此对象传递给UIApplication
的openURL
:方法以在App Store中打开您的项目 .示例代码:
Swift 3.0
如果要直接向App Store打开应用程序,则应使用:
ITMS-应用:// ...
这样它将直接打开设备中的App Store应用程序,而不是先进入iTunes,然后只打开App Store(仅使用itms://)
希望有所帮助 .
编辑:APR,2017 . itms-apps://实际上在iOS10中再次运行 . 我测试了它 .
编辑:APR,2013 . 这不再适用于iOS5及更高版本 . 只是用
而且没有更多的重定向 .
要简明扼要:
如果要发送给开发人员的所有应用程序,请使用
这些适用于iOS 4.1
如果您想链接到开发人员的应用程序,并且开发人员的名称有标点符号或空格(例如Development Company,LLC),请构成您的URL,如下所示:
否则,它会在iOS 4.3.3上返回“此请求无法处理”
从iOS 6开始,正确的方法是使用 SKStoreProductViewController 类 .
Swift 3.x :
Swift 3.2
Swift 2.x :
objective-C :
2015年夏季开始......
将'id1234567890'替换为'id'和'你的十位数'
这完全适用于 all devices .
它确实是 straight to 应用程序商店,没有重定向 .
所有人都可以 national stores .
如果链接的目的是更新你实际内在的应用程序,那么你应该 move to using
loadProductWithParameters
, but :使用这个"old-fashioned"方法可能更好 .Apple刚刚发布了appstore.com网址 .
https://developer.apple.com/library/ios/qa/qa1633/_index.html
此代码在iOS上生成App Store链接
在Mac上用http替换itms-apps:
在iOS上打开URL:
苹果电脑:
只需在应用链接中将“itunes”更改为“phobos”即可 .
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8
现在它将直接打开App Store
要在没有重定向的情况下拥有直接链接:
使用iTunes链接制作工具http://itunes.apple.com/linkmaker/获取真正的直接链接
用
itms-apps://
替换http://
用
[[UIApplication sharedApplication] openURL:url];
打开链接请注意,这些链接仅适用于实际设备,而不适用于模拟器 .
资料来源:https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html
这对我来说非常适合使用APP ID:
The number of redirects is ZERO.
许多答案建议使用'itms'或'itms-apps',但Apple并未特别推荐这种做法 . 他们只提供以下方式来打开App Store:
Listing 1 从iOS应用程序启动App Store
请参阅https://developer.apple.com/library/ios/qa/qa1629/_index.html上次更新于2014年3月,截至此答案 .
对于支持iOS 6及更高版本的应用,Apple提供了一个用于展示App Store的应用内机制:
SKStoreProductViewController
请注意,在iOS6上,如果有错误,可能无法调用完成块 . 这似乎是在iOS 7中解决的错误 .
如果您想链接到开发人员的应用程序,并且开发人员的名称有标点符号或空格(例如Development Company,LLC),请构成您的URL,如下所示:
否则,它会在iOS 4.3.3上返回“此请求无法处理”
您可以通过链接制造商获取指向应用商店或iTunes中特定商品的链接:http://itunes.apple.com/linkmaker/
这在ios5中正常工作并直接链接
这是在app store上重定向/链接其他现有应用程序的简单而简短的方法 .
我可以确认,如果您在iTunes中创建应用程序,则在提交之前会获得您的应用程序ID .
因此..
工作一种享受
在支持多个操作系统和多平台时,创建链接可能会成为一个复杂的问题 . 例如,iOS 7(其中一些)不支持WebObjects,您创建的某些链接将打开另一个国家/地区商店,然后是用户等 .
有一个名为iLink的开源库可以帮助你 .
这个库的优点是 the links would be found and created at run time (该库将检查应用程序ID及其运行的操作系统,并确定应创建哪个链接) . 最好的一点是,如果你在同一个项目中有很少的目标,那么你也不会很好,所以你不必记住要使用的应用ID或链接 . 如果用户同意,如果商店中有新版本(这是内置的,您通过一个简单的标志关闭它),该库也会提示用户升级应用程序,直接指向应用程序的升级页面 .
将2个库文件复制到项目中(iLink.h和iLink.m) .
在你的appDelegate.m上:
在您要打开评级页面的地方,例如使用:
不要忘记在同一文件中导入iLink.h .
整个图书馆有一个非常好的文档和iPhone和Mac的示例项目 .
至少iOS 9及以上版本
一个应用程序
开发人员应用列表
对于Xcode 9.1和Swift 4:
2.遵守协议
3.实施协议
3.1
注意:
如果您拥有应用商店ID,则最好使用它 . 特别是如果您将来可能更改应用程序的名称 .
如果您没有应用商店ID,则可以根据此文档创建网址https://developer.apple.com/library/ios/qa/qa1633/_index.html
通过这个测试
根据Apple's latest document你需要使用
要么
试试这种方式
http://itunes.apple.com/lookup?id= "your app ID here"返回json.From这个,找到键“ trackViewUrl ”和value是所需的url . 使用这个网址(只需用
itms-apps://
替换https://
) . 这很好用 .例如,如果您的应用ID是xyz,请转到此链接http://itunes.apple.com/lookup?id=xyz
然后找到关键字“ trackViewUrl ”的网址 . 这是您的应用商店应用的网址,并在xcode中使用此网址尝试此操作
谢谢
尽管这里有大量的答案,但链接到开发人员应用程序的建议似乎都不再适用 .
当我上次访问时,我能够使用以下格式使其工作:
这不再有效,但删除开发人员名称会: