从https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1运行AlipaySDK
演示时,发生了一些奇怪的事情。
从xcode的日志输出中,有超过10个日志要说
-canOpenURL:网址失败:“momochs://” - 错误:“此应用不允许查询方案妈妈
演示中没有源代码可以通过简单的搜索来打印出这些内容。静态库只是支付,不应该根据我的理解进行检查。
这里的问题是弄清楚为什么会发生这种情况或者其他设置错误?
2016-03-02 15:58:55.998 AliSDKDemo [4491:1610409] -canOpenURL:网址失败:“momochs://” - 错误:“此应用不允许查询方案妈妈” 2016-03-02 15:58:55.999 AliSDKDemo [4491:1610409] -canOpenURL:URL失败:“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:网址失败:“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”
答案 0 :(得分:2)
为什么有这么多canOpenURL?
因为他们想知道安装了哪些应用程序,所以直到iOS8这是一个很难理解的技巧,知道你安装了哪些应用程序,他们基本上有一个他们想知道的应用程序方案列表,所以他们会连续{{ 1}}调用每个应用程序方案,然后收集数据并将其发送回服务器,以满足他们所需的任何目的。
值得庆幸的是,在iOS9中不再允许这样做,因为您需要提供您的应用会执行canOpenURL
次呼叫的方案列表,调用不在canOpenURL
中的网址方案会导致你看到的日志警告
奇怪的是我得到了如下的日志信息,但找不到任何信息 源代码打印出来的东西。
SDK不是从我看到的开源的,所以你无法窥视他们的代码,代码在静态库info.plist
文件中
想知道他们如何在没有源代码的情况下做到这一点?任何技术能够实现这一目标吗?感谢
没什么特别的,如果你编写一个项目并将其构建为静态库,你将获得*.a
文件中的编译源代码,你可以导入到其他项目并在那里使用,只要你有正确的头文件,这正是支付宝的做法
希望这可以解决这种混乱,我建议保持原样,不要让他们像那样拉出特技。
你总是可以将这些方案的列表添加到.a
中,但是你必须自己向苹果解释为什么你需要打开这么多应用程序,再次,非常糟糕的想法,简单地忽略它你很高兴去!