UIApplication openURL未指向iOS7中的正确目标

时间:2013-11-11 11:06:23

标签: ios iphone objective-c ios7 uiapplication

我有一个应用程序,在按下按钮后将客户端发送到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的工作(即,向后兼容的新方法)?

1 个答案:

答案 0 :(得分:0)

我建议使用iOS 6+ SKStoreProductViewController,如Appirater项目中所示:https://github.com/arashpayan/appirater/blob/master/Appirater.m#L485(+ rateApp)

它会在您的应用内显示应用商店窗口,这比使用-openURL的旧解决方案快得多