UIApplication openURL 在 iOS7 中没有指向正确的目的地
Posted
技术标签:
【中文标题】UIApplication openURL 在 iOS7 中没有指向正确的目的地【英文标题】:UIApplication openURL does not point to the correct destination in iOS7 【发布时间】:2013-11-11 11:06:23 【问题描述】:我有一个应用程序,在单击按钮后会将客户端发送到 AppStore 以下载新应用程序。这是通过以下代码完成的:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://ax.itunes.apple.com/app/yyy-mobile/id4xxxxx89"]];
这行代码在 ios6 之前运行良好,但在最新的 v7 iOS SDK 之后,代码就坏了。
我们如何解决这个问题?如果设备安装了 iOS 7,我们是否需要 if/else 逻辑检查?例如:
if( iOS < 7 ) // keep old logic
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://ax.itunes.apple.com/app/yyy-mobile/id4xxxxx89"]];
else // new logic for iOS 7
//TBD
或者最好用新代码替换旧行,以便为 iOS7 和 iOS6 工作(即向后兼容的新方法)?
【问题讨论】:
也许这有帮助:***.com/a/18906304/1515075 【参考方案1】:我可以推荐使用在 Appirater 项目中看到的 iOS 6+ SKStoreProductViewController:https://github.com/arashpayan/appirater/blob/master/Appirater.m#L485 (+rateApp)
它将在您的应用内显示应用商店窗口,这比使用 -openURL 的旧解决方案要快得多
【讨论】:
谢谢,但我不想要这个解决方案。我希望 AppStore 在单独的应用中打开 您是否尝试过 Appirater for iOS 7 中使用的 URL? NSString *templateReviewURLiOS7 = @"itms-apps://itunes.apple.com/app/idAPP_ID"; 我已经在 iOS6 上尝试过了,它确实有效。如果这适用于 iOS7,我将使用这个字符串,因为我不需要 if/else sn-p以上是关于UIApplication openURL 在 iOS7 中没有指向正确的目的地的主要内容,如果未能解决你的问题,请参考以下文章
无法在 [UIApplication sharedApplication] 中使用 openURL 打开 url?
iOS UIApplication功能十分强大的openURL方法
UIApplication openURL 在 iOS7 中没有指向正确的目的地
如果其他应用程序调用 openURL: 使用有效 URL,UIApplication 会阻止应用程序移动到前台