在iOS应用中, 我随时调用此函数打开app store,
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://app-url"]];
原始应用将被停用。
然后用户在退出App Store后必须重新启动原始应用程序。
这是非常不方便的安装方式。
有没有办法在不离开应用程序的情况下打开App Store链接?
例如,打开为弹出窗口,
安装后只需关闭弹出窗口,我就可以看到原始应用程序。
已更新:
我找到了一个很好的例子! 喜欢这个游戏的弹出窗口。
答案 0 :(得分:6)
是的,我们可以在不离开IOS 6+中的现有应用的情况下打开App store链接。 你可以在下面使用它。
#import <StoreKit/StoreKit.h>
SKStoreProductViewController *storeController = [[SKStoreProductViewController alloc] init];
storeController.delegate = delegate;
NSDictionary *productParameters = @{ SKStoreProductParameterITunesItemIdentifier : appStoreID };
[storeController loadProductWithParameters:productParameters completionBlock:^(BOOL result, NSError *error) {
//Handle response
}
由于
答案 1 :(得分:1)
我的版本在这里。
1)#import <StoreKit/StoreKit.h>
并设置SKStoreProductViewControllerDelegate
2)添加委托响应方法,
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController
{
// if user do cancel, close it
[viewController dismissViewControllerAnimated:YES completion:nil];
}
3)添加商店开放代码。
void SomeClassName::openAppStore(string appStoreId, string appUrl)
{
// below iOS 6.0
NSString *appUrlStatic = [NSString stringWithUTF8String:appUrl.c_str()];
// iOS 6.0 or above, appstore id is 9-digin number
NSString *appId = [NSString stringWithUTF8String:appStoreId.c_str()];;
// check SKStoreProductViewController API exist or not
if(NSClassFromString(@"SKStoreProductViewController")) {
SKStoreProductViewController *storeController = [[SKStoreProductViewController alloc] init];
storeController.delegate = self;
NSDictionary *productParameters = @{ SKStoreProductParameterITunesItemIdentifier : appId };
[storeController loadProductWithParameters:productParameters completionBlock:^(BOOL result, NSError *error) {
if (result) {
[self presentViewController:storeController animated:YES completion:nil];
} else {
[[[UIAlertView alloc] initWithTitle:@"Error Occur"
message:@"Error to open App Store."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles: nil] show];
}
}];
[storeController release];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appUrlStatic]];
}
}