从https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1运行AlipaySDK
演示时,发生了一些奇怪的事情。
从xcode的日志输出中,有10多个日志要说
-canOpenURL:URL失败:“momochs://”-错误:“此应用程序不允许查询方案
演示中没有源代码可以通过简单的搜索将这些内容打印出来。静态库只是付款,根据我的理解,不应进行此类检查。
这里的问题是弄清楚为什么会发生这种情况,或者演示或其他设置有问题吗?
2016-03-02 15:58:55.998 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“momochs://”-错误:“此应用程序不允许查询方案
2016-03-02 15:58:55.999 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“tenpay://”-错误:“此应用程序不允许查询方案tenpay”
2016-03-02 15:58:55.999 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“com.icbc.iphoneclient://”-错误:“此应用程序不允许查询方案com.icbc。 iphoneclient”
2016-03-02 15:58:56.000 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“wx2654d9155d70a468://”-错误:“此应用程序不允许查询方案wx2654d9155d70a468”
2016-03-02 15:58:56.000 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“meituan0000://”-错误:“此应用程序不允许查询方案meituan0000”
2016-03-02 15:58:56.000 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“sinaweibo://”-错误:“此应用程序不允许查询方案sinaweibo”
2016-03-02 15:58:56.001 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“dianping://”-错误:“此应用程序不允许查询方案dianping”
2016-03-02 15:58:56.001 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“diditaxi://”-错误:“此应用程序不允许查询方案diditaxi”
2016-03-02 15:58:56.002 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“cn.12306://”-错误:“此应用程序不允许查询方案cn.12306”
2016-03-02 15:58:56.002 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“mtxx://”-错误:“此应用程序不允许查询方案mtxx”
2016-03-02 15:58:56.002 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“youku://”-错误:“此应用程序不允许查询方案优酷”
2016-03-02 15:58:56.003 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“baidumap://”-错误:“此应用程序不允许查询方案baidumap”
2016-03-02 15:58:56.003 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“iosamap://”-错误:“此应用程序不允许查询方案iosamap”
最佳答案
为什么有那么多canOpenURL?
因为他们想知道安装了哪些应用程序,所以在iOS8之前,这是个很难知道要安装哪些应用程序的技巧,他们基本上都有要了解的应用程序列表,因此他们将为每个应用程序进行连续的canOpenURL
调用方案,然后收集数据并将其发送回他们的服务器以达到他们需要的目的。
值得庆幸的是,iOS9中不再允许这样做,因为您需要提供应用程序将针对其进行canOpenURL
调用的方案列表,调用不在info.plist
中的url方案将导致该日志警告您看到
奇怪的是我得到了以下日志信息,但是找不到任何
源代码打印出这样的东西。
该SDK不是根据我所看到的开源的,因此您无法查看其代码,该代码位于静态库*.a
文件中
只是想知道如果没有源代码怎么办?有什么技术可以做到这一点?谢谢
没什么特别的,如果您编写一个项目并将其构建为静态库,则会在.a
文件中获得编译后的源代码,只要您具有正确的头文件,就可以将其导入其他项目并在其中使用。支付宝到底是怎么做到的
希望这能消除混乱,我建议保持原状,不要让他们进行这样的特技表演。
您始终可以将这些方案的列表添加到info.plist
中,但是然后您必须向苹果自己解释为什么需要打开这么多应用程序,这又是一个非常糟糕的主意,只需忽略它就可以了!
关于ios - 为什么有那么多canOpenURL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35741601/