【问题标题】:UIApplication openURL does not point to the correct destination in iOS7UIApplication openURL 在 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 工作(即向后兼容的新方法)?

【问题讨论】:

标签: ios iphone objective-c ios7 uiapplication


【解决方案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
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 2016-12-28
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
相关资源
最近更新 更多