如何在应用商店中链接到应用程序

762

我正在制作我的iPhone游戏的免费版本。我想在免费版本中放置一个按钮,可以将人们带到应用商店中的付费版本。如果我使用标准链接

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

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

有什么想法吗?应用商店的URL Scheme是什么?


1
对于 SWIFT 3.X 和本地化应用程序,这个答案可能会有所帮助:https://dev59.com/3XA75IYBdhLWcg3wv77A#41765175 - LukeSideWalker
27个回答

12

如果你想链接到开发者的应用程序,而开发者的名称包含标点符号或空格(例如Development Company, LLC),则可以像这样形成你的URL:

itms-apps://itunes.com/apps/DevelopmentCompanyLLC
否则它将在iOS 4.3.3上返回“无法处理此请求”。

1
如果这个方法对你不起作用,可以尝试以下语法:itms-apps://itunes.com/apps/ChuckSmith/id290402113,将我的名字替换为你的公司名称,将我的ID替换为你的艺术家ID,你可以从iTunes链接制作器中获取:http://itunes.apple.com/linkmaker/。 - Chuck Smith
你也可以尝试对那些“特殊”的字符进行编码 - 比如用“%2E”替换“.”。 - wzs
那是完美的答案! - Sam B

12

这个对我很有帮助,因为我的itunes-connect链接无法使用,但在生成器中可以。谢谢。 - Dorad

9

所有的答案都过时了,不起作用;请使用下面的方法。

开发者的所有应用程序:
itms-apps://apps.apple.com/cn/developer/开发者名称/开发者ID

单个应用程序:
itms-apps://itunes.apple.com/cn/app/应用ID


9

这在iOS5中可以直接链接起作用。

NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

8
这是一种简单而快捷的方法,可以将其他现有应用程序重定向/链接到应用商店。
 NSString *customURL = @"http://itunes.apple.com/app/id951386316";

 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]])
 {
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
 } 

7

针对Xcode 9.1和Swift 4:

  1. 导入StoreKit:
import StoreKit

2. 符合协议要求

SKStoreProductViewControllerDelegate

3. 实现协议

func openStoreProductWithiTunesItemIdentifier(identifier: String) {
    let storeViewController = SKStoreProductViewController()
    storeViewController.delegate = self

    let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
    storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in

        if loaded {
            // Parent class of self is UIViewContorller
            self?.present(storeViewController, animated: true, completion: nil)
        }
    }   
}

3.1

func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
    viewController.dismiss(animated: true, completion: nil)
}

如何使用:
  1. 如何使用:
openStoreProductWithiTunesItemIdentifier(identifier: "here_put_your_App_id")
注意:
非常重要的是输入您的应用程序的确切ID。因为这会导致错误(不会显示错误日志,但由于此原因,什么都无法正常工作)。

1
我正在做同样的事情,运行在设备上。没有成功。 - mugx

6

我可以确认,如果你在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];
< p >起作用了


5

对于网站链接,这是最好的方法。真不敢相信这个URL竟然这么难找到。 - Magnus
此内容与编程有关,请将其翻译成中文。只返回翻译后的文本:这是深度链接到App Store。带有https://itunes.apple.com/app/appId的URL会重定向到https://apps.apple.com/app/appId。如果您从App Store页面复制URL,它会给您一个使用https://apps.apple.com域的URL。因此,要在App Store上深入链接应用程序,像https://apps.apple.com/app/appId这样的URL似乎是最新的。 - Samuël

4
根据苹果公司最新的文档,您需要使用

。该文档可以在此处找到。涉及IT技术相关内容。
appStoreLink = "https://itunes.apple.com/us/app/apple-store/id375380948?mt=8"  

或者
SKStoreProductViewController 

你能更新一下你的链接吗?如果那个链接不起作用的话,这似乎非常有趣。 - Rémy Virin
链接的文档中没有提到 itms:itms-apps:。在运行 iOS 12 的设备上,使用该方案的链接可以正常工作。 - Theo

4
创建链接时,支持多个操作系统和平台可能会变得复杂。例如,WebObjects不支持iOS 7(其中一些),您创建的某些链接将打开用户所在的其他国家商店等。
有一个名为iLink的开源库可以帮助您。
这个库的优点是链接会在运行时被找到和创建(该库会检查应用程序ID和它正在运行的操作系统,并确定应创建什么链接)。最好的一点是,在使用之前几乎不需要配置,因此没有错误并且始终有效。如果您在同一项目中有几个目标,那么这也很棒,因为您不必记住要使用哪个应用程序ID或链接。如果商店中有新版本的应用程序,则此库还会提示用户升级应用程序(这是内置的,您可以通过简单的标志关闭),直接指向应用程序的升级页面,如果用户同意。
将2个库文件(iLink.h和iLink.m)复制到您的项目中。
在您的appDelegate.m文件中:
#import "iLink.h"

+ (void)initialize
{
    //configure iLink
    [iLink sharedInstance].globalPromptForUpdate = YES; // If you want iLink to prompt user to update when the app is old.
}

例如,如果您想打开评分页面的位置,只需使用以下代码:

[[iLink sharedInstance] iLinkOpenAppPageInAppStoreWithAppleID: YOUR_PAID_APP_APPLE_ID]; // You should find YOUR_PAID_APP_APPLE_ID from iTunes Connect 

不要忘记在同一文件中导入iLink.h。

整个库有非常好的文档,还有iPhone和Mac的示例项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接