【问题标题】:How to link to Update page for our app如何链接到我们应用的更新页面
【发布时间】:2015-12-04 06:37:20
【问题描述】:

如果用户运行的是过时版本,我们会提示用户升级他们的应用。当用户点击我们的更新按钮时,我使用带有itms://itunes.apple.com/us/app/our-app-title/id12345?mt=8 之类的地址的 openURL 将 App Store 应用加载到我们应用的列表中。

但是,使用该方法时,生成的屏幕会有一个标记为“打开”而不是“更新”的按钮。如果用户先打开 App Store 应用,然后导航到我们的应用列表(或转到更新选项卡),则该按钮将标记为“更新”。

我可以在 openURL 调用中将当前版本作为查询字符串参数传递,还是有其他方法可以确保显示更新按钮?我找不到有关如何执行此操作的当前文档。 (我发现的所有东西都是几年前的,并且指的是已停产的 phobos 工具。)

【问题讨论】:

  • 我建议你不要添加这个功能。您的应用可能会因为显示更新按钮而被拒绝。
  • 我没有在我的应用程序中添加更新按钮,而是将用户引导到 App Store 应用程序,我的应用程序列表,我希望更新按钮显示在那里(而不是默认打开)。我们还没有因为有这个而被拒绝。

标签: ios iphone app-store openurl


【解决方案1】:

appID = https://appstoreconnect.apple.com/ -> 我的应用程序 -> 'MyAPP' -> 应用程序信息 -> 在 GeneralInformation 部分下显示 Apple ID。

斯威夫特 5:

let params = [SKStoreProductParameterITunesItemIdentifier: appID]
let storeProductVC = SKStoreProductViewController()
storeProductVC.delegate = self
storeProductVC.loadProduct(withParameters: params)
self.present(storeProductVC, animated: true, completion: nil)

【讨论】:

  • 上传前能知道AppID吗?开发时如何指定ID?
  • 您购买Apple会员,在appstoreconnect上创建应用程序。在您的帐户下 AppID 将在第一个 alpha/beta/release 版本之前生成
【解决方案2】:

只需将 1166632935 替换为您的应用 ID - Swift 4

UIApplication.shared.open(URL(string: "itms://itunes.apple.com/app/id1166632935")!, options: [:])

如果UPDATE 按钮不可见,我们会通知用户打开App Store 应用上的Updates 选项卡并下拉刷新:/

【讨论】:

    【解决方案3】:

    我想为 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);
    }
    

    然后,您从中调用此代码的控制器将需要实现接口“ISKStoreProductViewControllerDelegate”以使“取消”按钮起作用。然后将 'this' 分配给 'Delegate' 属性。

    public partial class MyCurrentController : ISKStoreProductViewControllerDelegate {
    
            async void PromptForVersionUpgrade() { ... }
    
            [Export("productViewControllerDidFinish:")]
            public void Finished(SKStoreProductViewController controller)
            {
                controller.DismissViewController(true, null);
            }
    
            ...
    }
    

    【讨论】:

    • 谢谢。不是 Xamarin 用户,我无法确定这是否满足我最初的需求。我的问题是没有将用户带到我们应用的应用商店页面。当有新版本可用时,它让应用商店显示更新按钮而不是打开按钮。
    【解决方案4】:

    我建议您尝试 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")
    

    objective-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];
    }
    

    【讨论】:

    • 感谢@Ramis,我认为这是正确的解决方案。我一直在与生产中的错误作斗争,还没有机会对此进行测试。我已经投了赞成票,一旦我终于有机会尝试这个,我会转回去接受。
    • 仅供参考,我在运行模拟器时永远无法显示它,但它在实际设备上运行良好。
    【解决方案5】:

    From News and Announcement For Apple Developers.

    使用 iTunes 将客户直接吸引到您在 App Store 上的应用 链接 使用 iTunes 链接,您可以为您的客户提供一个简单的 直接从您的网站或 营销活动。创建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 建议使用以下步骤和代码从应用启动商店:

    1. 在您的计算机上启动 iTunes。
    2. 搜索您要链接的项目。
    3. 右键单击或按住 Control 单击 iTunes 中的项目名称,然后 从弹出菜单中选择“复制 iTunes Store URL”。
    4. 在您的应用程序中,使用复制的 iTunes 创建一个 NSURL 对象 URL,然后将此对象传递给 UIApplication 的 openURL: 方法以 在 App Store 中打开您的项目。

    示例代码:

    NSString *iTunesLink = @"itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
    

    复制自here

    【讨论】:

    • 谢谢,但我已经链接到我的应用了。我需要的是 App Store 页面在你去那里时显示“更新”按钮,而不是“打开”按钮。
    猜你喜欢
    • 2011-06-21
    • 1970-01-01
    • 2012-03-18
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多