美文网首页
在 App 内部打开AppStore

在 App 内部打开AppStore

作者: WeeverLu | 来源:发表于2016-06-12 16:41 被阅读431次

    在 App 内部打开 AppStore,系统本身就有 API,需要 iOS6 以上才可以使用, 由于目前大部分 App 都在 iOS6至少,故以下不区分了

    导入

    需要导入StoreKit.framework
    在使用的地方引入头文件#import <StoreKit/StoreKit.h>,iOS6以上才可以使用


    主要代码

    设置 AppId

    static NSString * const kAppId = @"425349261"; // 测试使用 网易新闻 AppId
    

    跳转代码

    /** 跳到 AppStore 系统App*/
    - (void)goAppStoreInOutside:(NSString *)appId
    {
        // 这里有国内外区域之分?
        NSString *urlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/us/app/id%@?mt=8", appId];
        NSURL *url = [NSURL URLWithString:urlString];
        if ([[UIApplication sharedApplication] canOpenURL:url]) {
            [[UIApplication sharedApplication] openURL:url];
        }
    }
    
    /** 在 App 内显示 AppStore,如果 AppId 有误,貌似就没反应,iOS6以上才可以使用 */
    - (void)goAppStoreInApp:(NSString *)appId
    {
        if (!appId || appId.length == 0) {
            NSAssert(appId && appId.length != 0, @"AppId 不能为空");
            return;
        }
    
        SKStoreProductViewController *skStoreProductViewController = [[SKStoreProductViewController alloc] init];
        skStoreProductViewController.delegate = self; // SKStoreProductViewControllerDelegate
        NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier: appId };
        // 先presentViewController再调用loadProduct,可以先弹出界面,否则需要等loadProduct一会才弹出来
        [self presentViewController:skStoreProductViewController animated:YES completion:nil];
        [skStoreProductViewController loadProductWithParameters:parameters completionBlock:nil];
    }
    
    #pragma mark - SKStoreProductViewControllerDelegate
    // 点击左上角“取消”和 右上角“Store”均调用此方法
    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController
    {
        [viewController dismissViewControllerAnimated:YES completion:nil];
    }
    

    Demo地址:
    https://git.coding.net/Weever/StoreProductDemo.git

    相关文章

      网友评论

          本文标题:在 App 内部打开AppStore

          本文链接:https://www.haomeiwen.com/subject/ghgedttx.html