我正在创造自己的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方案是什么?
当前回答
它会直接打开应用商店
NSString *iTunesLink = @"itms-apps://itunes.apple.com/app/ebl-
skybanking/id1171655193?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
其他回答
这段代码生成iOS上的App Store链接
NSString *appName = [NSString stringWithString:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]];
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];
在Mac上用http替换itms-apps:
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"http:/itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];
在iOS上打开URL:
[[UIApplication sharedApplication] openURL:appStoreURL];
Mac:
[[NSWorkspace sharedWorkspace] openURL:appStoreURL];
对于Xcode 9.1和Swift 4:
进口StoreKit:
进口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)
}
使用方法:
openStoreProductWithiTunesItemIdentifier(标识符:“here_put_your_App_id”)
注意:
输入你的APP的确切ID是非常重要的。因为这会导致错误(不显示错误日志,但没有任何工作正常,因为这个)
这里的大多数解决方案都过时了
为那些寻找更新的工作解决方案
// 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)
我可以确认,如果你在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];
工作是一种享受
尽管这里有很多答案,但没有一个链接到开发者应用程序的建议似乎已经不管用了。
当我上次访问时,我能够使用以下格式让它工作:
itms-apps://itunes.apple.com/developer/developer-name/id123456789
这不再有效,但删除开发人员名称可以:
itms-apps://itunes.apple.com/developer/id123456789