我想使用以下代码
打开appstore页面作为应用程序内部的模型视图[NSDictionary dictionaryWithObject:@"APPID" forKey:SKStoreProductParameterITunesItemIdentifier];
SKStoreProductViewController *productViewController = [[SKStoreProductViewController alloc] init];
[self presentViewController:productViewController animated:YES completion:nil];
但是当appstore在应用程序内部打开时,它将作为空白页面打开。 请参阅附加屏幕截图
我不明白为什么app的appstore页面没有打开。我在上面的代码中传递了APPID。
有没有其他方法可以在不关闭应用程序的情况下对应用程序进行评级?
答案 0 :(得分:1)
基本上,在您将StoreKit.framework
链接到项目之后,这样的事情可能对您有所帮助。请注意,它可能不适用于模拟器;在真实的设备上运行良好。
@interface UIYourViewController : UIViewController <SKStoreProductViewControllerDelegate> { }
- (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,如其头文件中所述,尽管字符串值当前正常。