作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我正在注册一个应用程序来处理通过 URL 打开的问题,我对
application:openURL:sourceApplication:annotation
根据documentation如果您可以支持该 URL,则应返回 YES,否则应返回 NO。这有什么好处呢?如果 URL 格式不正确或不受支持,我将返回 NO,但应用程序仍然打开,就好像没有出错一样。谁监听 BOOL
返回值,他们用它做什么?如果 URL 格式错误或不受支持,是否有办法阻止应用程序打开?
最佳答案
文档说,如果您成功打开 URI,则返回 YES
,如果没有打开,则返回 NO
。请注意,“打开成功或失败”在语义上不同于“可以或不能打开”。不幸的是,没有办法阻止应用程序启动 - 如果它注册了一个架构,那么无论 URI 的其余部分是否格式正确,它都会启动。
UIApplication 有两个方法:canOpenURL:
和openURL:
。第一个仅检查架构是否受支持(不是完整的 URL),后者在何处启动应用程序并返回应用程序委托(delegate)的结果。
所以回答你的问题:调用 [[UIApplication sharedApplication] openURL:url]
的另一个应用程序是监听你的委托(delegate)结果的应用程序
关于ios - 应用程序 :openURL:sourceApplication:annotation return NO versus YES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7409037/
我是一名优秀的程序员,十分优秀!