打开appstore作为模型视图打开空白页面ios

时间:2014-05-28 12:54:35

标签: ios app-store rate

我想使用以下代码

打开appstore页面作为应用程序内部的模型视图
[NSDictionary dictionaryWithObject:@"APPID" forKey:SKStoreProductParameterITunesItemIdentifier];

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

但是当appstore在应用程序内部打开时,它将作为空白页面打开。 请参阅附加屏幕截图Blank appstore page when opened as model view

我不明白为什么app的appstore页面没有打开。我在上面的代码中传递了APPID。

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

2 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:0)

在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的值为Number,如其头文件中所述,尽管字符串值当前正常。