如果用户运行的是过期版本,我们会提示用户升级他们的应用。当用户点击我们的更新按钮时,我使用openURL和itms://itunes.apple.com/us/app/our-app-title/id12345?mt=8
这样的地址将App Store应用加载到我们应用的列表中。
但是,使用该方法,生成的屏幕有一个标记为“打开”而不是“更新”的按钮。如果用户首先打开App Store应用程序,然后导航到我们应用程序的列表(或转到更新选项卡),该按钮将标记为“更新”。
我可以在openURL调用中将当前版本作为查询字符串参数传递,还是有另一种方法可以确保显示“更新”按钮?我找不到有关如何操作的最新文档。 (我发现的所有东西都是几年之久,并且指的是已停产的phobos工具。)
答案 0 :(得分:12)
我建议您尝试 SKStoreProductViewController 类。 iTunes项目标识符可在https://itunesconnect.apple.com - >中找到我的应用 - > Apple ID 。
<强>迅速强>:
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.presentViewController(storeViewController, animated: true, completion: nil)
}
}
}
func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
viewController.dismissViewControllerAnimated(true, completion: nil)
}
// Usage
openStoreProductWithiTunesItemIdentifier("2321354")
<强>目标c 强>:
- (void)openStoreProductViewControllerWithITunesItemIdentifier:(NSInteger)iTunesItemIdentifier {
SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];
storeViewController.delegate = self;
NSNumber *identifier = [NSNumber numberWithInteger:iTunesItemIdentifier];
NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier:identifier };
UIViewController *viewController = [self topViewController];
[storeViewController loadProductWithParameters:parameters
completionBlock:^(BOOL result, NSError *error) {
if (!result) {
NSLog(@"SKStoreProductViewController: %@", error);
}
}];
[viewController presentViewController:storeViewController animated:YES completion:nil];
[storeViewController release];
}
答案 1 :(得分:3)
From News and Announcement For Apple Developers
使用iTunes将客户直接带到App Store上的应用程序 链接通过iTunes链接,您可以轻松地为您的客户提供服务 直接从您的网站访问App Store上的应用程序的方法 营销活动。创建iTunes链接很简单,可以制作 将客户引导至单个应用,所有应用或应用 指定了您公司名称的特定应用程序。
将客户发送到特定应用程序: http://itunes.com/apps/appname
要将客户发送到App Store上的应用列表,请执行以下操作: http://itunes.com/apps/developername
将客户发送到包含您公司名称的特定应用 网址:http://itunes.com/apps/developername/appname
附加说明:
您可以将http://
替换为itms://
或itms-apps://
以避免重定向。
有关命名的信息,请参阅Apple QA1633:
https://developer.apple.com/library/ios/#qa/qa1633/_index.html
编辑(截至2015年1月):
itunes.com/apps链接应更新为appstore.com/apps。见上面的QA1633,已经更新。新的QA1629建议了从应用程序启动商店的这些步骤和代码:
示例代码:
NSString *iTunesLink = @"itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
从here复制。
答案 2 :(得分:0)
我想为Xamarin用户提供答案。以下内容将显示一个警报产品,以便更新,然后将用户带到商店。
async void PromptForVersionUpgrade()
{
var alertController = UIAlertController.Create(Messages.NewVersionTitle, Messages.NewVersionText, UIAlertControllerStyle.Alert);
alertController.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, null));
alertController.AddAction(UIAlertAction.Create(Messages.NewVersionGoToAppStore, UIAlertActionStyle.Default, (obj) =>
{
var storeViewController = new SKStoreProductViewController();
storeViewController.Delegate = this;
storeViewController.LoadProduct(new StoreProductParameters { ITunesItemIdentifier = 999999999 }, (isLoaded, error) =>
{
if (isLoaded)
PresentViewController(storeViewController, true, null);
});
}));
PresentViewController(alertController, true, null);
}
然后,您调用此代码的控制器需要实现接口&#39; ISKStoreProductViewControllerDelegate&#39;取消&#39;取消&#39;按钮工作。然后&#39;这个&#39;可分配给代表&#39;属性。
public partial class MyCurrentController : ISKStoreProductViewControllerDelegate {
async void PromptForVersionUpgrade() { ... }
[Export("productViewControllerDidFinish:")]
public void Finished(SKStoreProductViewController controller)
{
controller.DismissViewController(true, null);
}
...
}
答案 3 :(得分:0)
只需将1166632935
替换为您的应用ID-Swift 4
UIApplication.shared.open(URL(string: "itms://itunes.apple.com/app/id1166632935")!, options: [:])
我们通知用户在Updates
应用程序上打开App Store
标签,如果看不见UPDATE
按钮,则下拉菜单进行刷新:/
答案 4 :(得分:0)
appID
= https://itunesconnect.apple.com -> 我的应用 -> Apple ID。
Swift 5:
let params = [SKStoreProductParameterITunesItemIdentifier: appID]
let storeProductVC = SKStoreProductViewController()
storeProductVC.delegate = self
storeProductVC.loadProduct(withParameters: params)
self.present(storeProductVC, animated: true, completion: nil)