当前位置:  开发笔记 > IOS > 正文

canOpenUrl和tel://

如何解决《canOpenUrl和tel://》经验,为你挑选了1个好方法。

我无法理解这种方法的工作原理.

从文档中,它指定:

canOpenURL:返回应用程序是否可以打开给定的URL资源.

- (BOOL)canOpenURL:(NSURL *)url

参数url标识给定资源的URL对象.URL的方案 - 可能是自定义方案 - 标识哪个应用程序可以处理URL.

如果没有可用的接受URL的应用程序,则返回值NO; 否则,返回YES.

讨论此方法保证在调用openURL:时,将启动另一个应用程序来处理它.它不保证完整的URL有效.

可用性适用于iPhone OS 3.0及更高版本.在UIApplication.h中声明

具体来说,如果它:

保证如果调用openURL:,将启动另一个应用程序来处理它.

然后,例如,如果我传入tel://HELLOWORLD,则返回YES,当我尝试时openUrl,电话应用程序不会调用它.什么都没发生,所以我假设在尝试拨号时,完整的URL无效.

我知道它没有验证完整的URL,但是根据设计,如果我无法拨打该号码,为什么它没有显示错误或其他什么?

基本上我想知道的是:它究竟什么验证?

我不相信它只是检查处理程序类型和支持该特定处理程序的应用程序(例如,tel://在这种情况下不适用于iPod Touch).



1> oefe..:

验证不是此功能的目的.它只检查是否有为此url 方案注册的应用程序.

例如,在iPod touch或iPad,没有手机应用程序,从而canOpenURL将返回NOtel:网址.

或者,如果您要求提供带有该foo:方案的网址,如果用户设备安装了声称处理此方案的任何应用程序,则它将返回true.

它无法验证网址,因为它不了解该foo方案或下一个应用程序开发人员提出的任何方案.此时您也不想加载应用程序以验证URL.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有