2018-09-27

1. 应用内跳转 到appstore 下载:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/cn/app/id1236753543"]];

2. 应用内直接打开appstore 下载 :

#import 

SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];

    //设置代理请求为当前控制器本身

    storeProductViewContorller.delegate=self;

    //加载一个新的视图展示

    [storeProductViewContorllerloadProductWithParameters:

     //appId唯一的

     @{SKStoreProductParameterITunesItemIdentifier : @"1236753543"} completionBlock:^(BOOL result, NSError *error) {

         //block回调

         if(error){

             NSLog(@"error %@ with userInfo %@",error,[erroruserInfo]);

         }else{

             //模态弹出appstore

             [selfpresentViewController:storeProductViewContorlleranimated:YEScompletion:^{


             }

              ];

         }

     }];


//取消按钮监听

- (void)productViewControllerDidFinish:(SKStoreProductViewController*)viewController{

    [self dismissViewControllerAnimated:YES completion:^{


    }];

}

应用内直接打开appstore效果如下:

2018-09-27_第1张图片

注意点:

1.应用内打开 跳转AppStore时,要保证appStore账号所在国家和app发布的国家是同一个国家。

参考:https://blog.csdn.net/hanhailong18/article/details/78432792

这个方法没有回调,而且没有任何的错误提示。经过半天排查无果后,我拿着可以正常跳转的页面的手机,和不正常跳转的页面的手机进行排查分析,首先从机型排查,发现出现不能正常跳转的页面的手机多种机型都存在;其次我有从操作系统进行排查,发现多个操作系统的手机都有出现无法正常跳转的情况。这两点都无法确定操作系统和机型是造成这种现象的原因。后来无意发现出现无法正常跳转的手机的appStore语言是英文,我猜测是不是登陆的appStore账号所在的国家和要跳转的app发布的市场不在一个国家导致的。为了验证我的猜测,我把不能正常跳转的手机,用国内的appStore账号登陆,重新运行程序,发现OK了。然后我又把可以正常跳转的手机,用国外的appStore账号登陆,重新运行程序,果然不能正常跳转了。所以啊。这个坑大家要注意:

你可能感兴趣的:(2018-09-27)