我正在创造自己的iPhone游戏的免费版本。我想在免费版本中添加一个按钮,引导用户进入应用商店中的付费版本。如果我使用标准链接

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8

iPhone首先打开Safari,然后打开应用商店。我使用过其他直接打开应用程序商店的应用程序,所以我知道这是可能的。

什么好主意吗?应用商店的URL方案是什么?


当前回答

我可以确认,如果你在iTunes connect上创建应用,你会在提交应用之前获得应用id。

因此. .

itms-apps://itunes.apple.com/app/id123456789

NSURL *appStoreURL = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id123456789"];
    if ([[UIApplication sharedApplication]canOpenURL:appStoreURL])
        [[UIApplication sharedApplication]openURL:appStoreURL];

工作是一种享受

其他回答

如果你想直接在app Store中打开应用,你应该使用:

itms-apps: / /……

这样,它将直接打开设备中的App Store应用程序,而不是先去iTunes,然后只打开App Store(当只使用itms://)


编辑时间:2017年4月。 itms-apps://实际上在iOS10中再次工作。我测试过了。

编辑:2013年4月。 这在iOS5及以上版本中不再适用。只使用

https://itunes.apple.com/app/id378458261

也没有更多的重定向。

这里的大多数解决方案都过时了

为那些寻找更新的工作解决方案

// let appStoreLink = "https://apps.apple.com/app/{app-name}/{app-id}"

guard let url = URL(string: Constants.App.appStoreLink) else { return }
UIApplication.shared.open(url)

如果你想链接到开发商的应用,而开发商的名字中有标点符号或空格(例如Development Company, LLC),你的URL是这样的:

itms-apps://itunes.com/apps/DevelopmentCompanyLLC

否则它在iOS 4.3.3上返回“此请求不能被处理”

至少iOS 9及以上版本

直接在App Store打开

一个应用程序

itms-apps://itunes.apple.com/app/[appName]/[appID]

开发者的应用程序列表

itms-apps://itunes.apple.com/developer/[developerName]/[developerID]

这对我来说非常有效,只使用APP ID:

 NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",YOUR_APP_ID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

重定向的数量为0。