2

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

[[UIApplication sharedApplication] canOpenURL:urlToUpdate

url 是用一个字符串创建的,并且

NSString *urlStringToOpenEscaped = [urlStringToOpen stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *urlToUpdate = [NSURL URLWithString:urlStringToOpenEscaped];

总是返回 FALSE。

我检查了可以从 iPad 访问的 URL。

任何的想法?

4

2 回答 2

1

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

该方法保证如果调用 openURL: 会启动另一个应用程序来处理它。它不保证完整的 URL 是有效的。

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

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

于 2012-11-21T18:58:23.493 回答
0

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

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

于 2015-09-11T05:59:55.213 回答