昨晚同事拿了一个app 发现其app 内部页面打开了appstore 并没有唤起手机自带的appstore, 刚开始以为是用webview 加载的
,可是自己些了一个demo 发现并不是那样一回事 用webview 加载appstore 地址 会被js 自动调起本地的appstore,
下面是我的发给同事的邮件 直接贴下来
我们都绕了弯路 一直以为是用webview 加载的。 我下班做了测试 发现用webview 加载appstore的地址 ,ios 会根据User-Agent 自动判断 唤起本地的app store,其效果跟用[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@“”]];是一样的。
后来我尝试改写User-Agent 发现打开的页面是电脑打开的页面一样的 并不是我们通过手机 打开app store 看到的页面。
后来我看苹果的文档 发现 他们提供了一个类SKStoreProductViewController专门来干这个事情的
实现效果如下图
下面是关键代码
需要引入的#importdelegate 为SKStoreProductViewControllerDelegate调用方式 [self openAppWithIdentifier:@"592043421"];#pragma mark - SKStoreProductViewControllerDelegate- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController { [viewController dismissViewControllerAnimated:YES completion:^{ }];}- (void)openAppWithIdentifier:(NSString *)appId { SKStoreProductViewController *storeProductVC = [[SKStoreProductViewController alloc] init]; storeProductVC.delegate = self; NSDictionary *dict = [NSDictionary dictionaryWithObject:appId forKey:SKStoreProductParameterITunesItemIdentifier]; [storeProductVC loadProductWithParameters:dict completionBlock:^(BOOL result, NSError *error) { if (result) { [self presentViewController:storeProductVC animated:YES completion:nil]; } }];}
另外 本人打算十一后离职换份工作,哪位仁兄公司有意向 站内信联系,帮忙内推下哈.
再打下广告哈 我搭建的个人博客 也已经上线了 引用的是hexo , 地址是 ui配色再微调中,对ie10 以下支持不太好 建议用chrome Firefox 或者safrari 浏览 另外也已经对移动设备做了响应是布局.