【问题标题】:canOpenURL always return FALSEcanOpenURL 总是返回 FALSE
【发布时间】:2015-09-11 14:26:54
【问题描述】:

我正在尝试使用 UIApplication 打开一个 URL,但是当我运行时:

[[UIApplication sharedApplication] canOpenURL:urlToUpdate

url 是用 String 和

创建的
NSString *urlStringToOpenEscaped = [urlStringToOpen stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *urlToUpdate = [NSURL URLWithString:urlStringToOpenEscaped];

总是返回 FALSE。

我检查了该 URL 可从 iPad 访问。

有什么想法吗?

【问题讨论】:

  • 能否给我们显示 url 字符串(urlStringToOpenEscaped)?
  • 确定:itms-services://?action=download-manifest&url=http://address/App.plist
  • 在这里查看第一个答案中的 cmets。它可能会有所帮助。 stackoverflow.com/questions/4695180/…
  • Thanksss,我会尝试审查所有案例。附加信息:我检查了 URL:http://address/App.plist 在调用中返回 TRUE,canOpenURL

标签: ios uiapplication


【解决方案1】:

canOpenURL 方法并非用于测试网络 URL 是否可访问。根据文档:

这个方法保证如果 openURL: 被调用,另一个 申请将是 启动处理它。它不保证完整的 URL 是有效的。

因此,这是一种了解传递给方法的 url 指定的资源是否可以被系统上的应用程序访问/打开的方法。

如果您想检查某个网址是否可访问,您必须执行请求,然后在响应中处理结果。

【讨论】:

  • 我知道,所以在调用 UIApplication 之前,我使用 NSURLConnection 检查资源是否可用,我收到状态 200。如果我在调用 [ 时删除 [[UIApplication sharedApplication] canOpenURL:urlToUpdate] [UIApplication sharedApplication] openURL:urlToUpdateWithHeaders];没用,什么都不做。
【解决方案2】:

IOS 9 对使用 canopenURL 的政策进行了一些更改,以防止广告服务滥用 API。

http://www.macrumors.com/2015/06/24/ios-9-policy-change-advertising-privacy/

【讨论】:

  • 不是它,它不是 comgooglemaps 的 info.plist。还有什么问题。可能是 GoogleMaps 或 iOS 中的错误,或两者兼而有之
猜你喜欢
  • 2022-10-20
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2021-11-05
  • 2018-11-05
  • 2019-05-06
  • 2017-04-29
  • 2013-04-30
相关资源
最近更新 更多