[尝试构建tvOS应用程序,而我要使用的一种情况是,只需单击一下按钮,就可以链接并直接在Apple TV App Store中打开另一个应用程序。有人可以分享一个代码片段来启用它吗?
我已经通过检查设备控制台输出来解决这个问题。诀窍是使用com.apple.TVAppStore
方案而不是itms-apps
。示例(瑞士App Store):
com.apple.TVAppStore://itunes.apple.com/ch/app/youtube/id544007664?mt=8
事实上,https
方案也可以使用,但是无论如何它都已转换为com.apple.TVAppStore
。
刚刚在tvOS上测试过:
if let appStoreURL = NSURL(string: "https://itunes.apple.com/us/app/wee-puzzles/id1035425291?mt=8") {
UIApplication.sharedApplication().openURL(appStoreURL)
}
它可以正常工作,并在Apple TV上打开您的应用程序的App Store页面。与iOS相同。
不幸的是,此[[不可能对于当前的tvOS。
在iOS上,根据Apple在QA1629中的建议,我们会这样做:NSString *iTunesLink = @"https://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
以上请求通过了tvOS上不存在的Safari。因此,它将无法正常工作。但是,tvOS支持Custom URL Schemes,这可能至少会有所帮助。
SKStoreProductViewController
。但显然_TVOS_PROHIBITED
也是。[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://geo.itunes.apple.com/fr/app/math-champions-jeux-calcul/id561572290?mt=8"]]
[请勿通过删除应用程序的语言或名称来修改链接,就像在iOS上一样。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://geo.itunes.apple.com/fr/app/math-champions-jeux-calcul/id561572290?mt=8"]]
类似于上述答案所说的。但是,为了使其正常工作,必须将您的应用设置为iOS和tvOS的通用购买,这很容易设置:Universal Purchase of iOS and tvOS Apps。
这是Swift 4的解决方案:将XXXXXXX
替换为您的应用ID。使用此解决方案,可以为尚未发布的应用创建应用商店链接,因为仅需要应用ID(可从应用商店连接中获知)。
guard let tvOSAppStoreUrl = URL(string: "com.apple.TVAppStore://itunes.apple.com/app/idXXXXXXX?mt=8") else {
return
}
UIApplication.shared.open(url, options: [:], completionHandler: nil)