好吧,已经花了 4 个小时了,所以我向 SO 希望获得帮助。
以下是事实,以便您可以快速理解:
我们有一个现有的 AIR Mobile 应用程序,可以在我的笔记本电脑以及我们在 HTTP 模式下测试过的每台 Android 设备(Kindle、Nexus、Asus A100)上正常运行
一旦我们切换到 HTTPS,only笔记本电脑和 Kindle 设备将连接到服务器
在其他设备上,我收到返回的FaultEvent,并且错误显示:“发送失败。Channel.Connect.Failed 错误 NetConnection.Call.Failedhttps://www.example.com/flex2gateway/cfamfsecure/ https://www.example.com/flex2gateway/cfamfsecure/"
我可以在浏览器中在 Nexus/A100 上点击上面的 URL,它会按预期返回一个空白页面
使用相同连接的基于 Flex 的应用程序多年来一直没有问题 - 这是第一个使用该 HTTPS 连接的 AIR 应用程序
我正在使用 Captive Runtime 功能
ColdFusion 9 后端
我无法调试网络流量,因为它只发生在平板电脑上,而且我目前不知道如何捕获平板电脑上的流量,就像我可以使用 Fidder 在笔记本电脑上捕获流量一样(现在正在研究)
我会尽快提供您需要的任何其他信息 - 请告诉我。
除了上述内容之外,我还查看了其他一些内容,例如:确保 crossdomain.xml 文件存在并且设置正确,更改 CF 的 services-config.xml 文件中的设置等。
我目前的想法是,也许它与 SSL 证书中的链接有关 - 就像根 CA 可能在 Nexus 上不受信任之类的? (这是 GlobalSign 根 CA)或者它与 Flex 时代和 IE/代理等默认浏览器有关?
以前从未见过这种情况,所以我会尽我所能获得帮助。
[更新]:我创建了一个小样本,您可以使用它来复制此问题:https://www.dropbox.com/s/5nmilo3tbwr2k8d/HTTPTestSource.zip https://www.dropbox.com/s/5nmilo3tbwr2k8d/HTTPTestSource.zip
它将包含您需要的一切:源代码、编译的 .AIR(适用于桌面)、编译的 .APK(适用于 Android 设备)。桌面版在 HTTP 和 HTTPS 下运行良好,而移动版 APK 仅适用于 HTTP。如果您愿意,我还提供了一个示例 CFC,可以将其安装到您自己的服务器上。
感谢您阅读本文!
[解决]
好吧,我让它适合我的情况 - 希望这对其他人有帮助。
问题在于 AIR Captive Runtime。使用 HTTPS 时似乎不起作用。我不得不切换到它,因为我的第一个开发硬件是 Kindle Fire,并且 AIR Runtime 预装在 Kindle Fire 上,但我需要最新版本的 AIR。所以,我只是打开 Captive Runtime 并继续我的快乐之路。
当我们上线时,我们将端点更改为 HTTPS 服务器,Kindle 继续工作,而所有其他平板电脑都出现故障。
为了解决这个问题,我关闭了 Captive Runtime 并重新编译,现在卸载/重新安装后它可以在我的所有平板电脑上运行,exceptKindle Fire,我只需为其提供不同的安装即可。
希望这可以帮助其他遇到同样问题的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)