【问题标题】:open appstore as model view opens blank page ios打开应用商店作为模型视图打开空白页面 ios
【发布时间】:2014-05-28 12:54:35
【问题描述】:

我正在尝试使用以下代码在应用程序内打开应用商店页面作为模型视图

[NSDictionary dictionaryWithObject:@"APPID" forKey:SKStoreProductParameterITunesItemIdentifier];

SKStoreProductViewController *productViewController = [[SKStoreProductViewController alloc] init];
[self presentViewController:productViewController animated:YES completion:nil];

但是当 appstore 在应用程序内打开时,它会以空白页的形式打开。 请参考附件截图

我不明白为什么我的应用的应用商店页面打不开。我在上面的代码中传递了 APPID。

有没有其他方法可以在不关闭应用的情况下对应用进行评分?

【问题讨论】:

  • 如何将ID 传递给控制器​​?你如何在这里设置delegate 类?许多未解决的问题仍然在这里......
  • 首先应用程序上线了吗?其次,它并不总是在模拟器上工作。
  • @rckoenes :是的,应用程序已经上线,我在模拟器以及 ios 6.1 设备、ios 7 设备中进行了尝试。
  • @holex :实际上我从stackoverflow.com/questions/19585037/… 问题中获得了此代码,并且该答案已获得批准,因此我认为它可能会起作用。我应该更改代码中的任何内容吗?如何将包含 APPID 的目录传递给 SKStoreProductViewController ?
  • @user2207961,这个答案并不包含整个实现,你不能只是复制和粘贴一个小代码片段,它根本不起作用。

标签: ios app-store rate


【解决方案1】:

基本上,在您将StoreKit.framework 链接到您的项目后,类似的内容可能会对您有所帮助。请注意,它可能无法在模拟器上运行;在真实设备上运行良好。

.h

@interface UIYourViewController : UIViewController <SKStoreProductViewControllerDelegate> { }

.m

- (void)myOwnCustomMethod {

    SKStoreProductViewController *_controller = [[SKStoreProductViewController alloc] init];
    [_controller setDelegate:self];
    [_controller loadProductWithParameters:[NSDictionary dictionaryWithObjectsAndKeys:@"364709193", SKStoreProductParameterITunesItemIdentifier, nil] completionBlock:^(BOOL result, NSError *error) {
        if (result) {
            [self.navigationController presentViewController:_controller animated:TRUE completion:nil];
        } else {
            // you can handle the error here, if you'd like to.
        }
    }];

}

#pragma mark - <SKStoreProductViewControllerDelegate>

- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [self dismissViewControllerAnimated:TRUE completion:nil];
}

【讨论】:

  • holex Vidhi 嘿,它不工作,仍然显示空白页。你能帮我解决这个问题吗?
  • presentViewController不需要等待加载成功,因为cancel按钮会首先显示。
【解决方案2】:

在 Swift 3 中,

import StoreKit
class DetailViewController: UIViewController {

    @IBAction func onEditButton(_ sender: UIBarButtonItem) {
        let vc = SKStoreProductViewController()
        vc.delegate = self
        present(vc, animated: true, completion: nil)
        vc.loadProduct(withParameters: [SKStoreProductParameterITunesItemIdentifier: 351091731]) { (success, error) in
            if !success {
                print("\(error)")
            }
        }
    }
}

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

确保SKStoreProductParameterITunesItemIdentifier 的值是数字,如其头文件中所述,尽管字符串值当前是可以的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 2017-10-30
    • 1970-01-01
    • 2018-02-27
    • 2012-03-12
    相关资源
    最近更新 更多