Adobe AIR 移动应用程序在 Nexus 平板电脑上使用 HTTPS 时失败,但可在 Kindle 上运行 [英] Adobe AIR mobile app fails when using HTTPS on Nexus tablet, but works on Kindle

查看:22
本文介绍了Adobe AIR 移动应用程序在 Nexus 平板电脑上使用 HTTPS 时失败,但可在 Kindle 上运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好吧,4 个小时已经过去了,所以我转向 SO 寻求帮助.

Ok, 4 hours burned, so I'm turning to SO in hope for help.

以下是事实,以便您快速了解:

Here are the facts so you can understand quick:

  • 我们现有的 AIR Mobile 应用程序可以在我的笔记本电脑以及我们在 HTTP 模式下测试的所有 Android 设备(Kindle、Nexus、Asus A100)上正常运行

  • We have an existing AIR Mobile app that runs fine on my laptop, and every Android device we've tested while in HTTP mode (Kindle, Nexus, Asus A100)

一旦我们切换到 HTTPS,只有笔记本电脑和 Kindle 设备会连接到服务器

As soon as we switched to HTTPS, only the laptop and Kindle devices will connect to the server

在其他设备上,我收到一个 FaultEvent 返回,错误显示:发送失败.Channel.Connect.Failed 错误 NetConnection.Call.Failed https://www.example.com/flex2gateway/cfamfsecure/"

On the other devices, I'm getting a FaultEvent returned, and the error says: "Send Failed. Channel.Connect.Failed error NetConnection.Call.Failed https://www.example.com/flex2gateway/cfamfsecure/"

我可以在浏览器中的 Nexus/A100 上点击上面的 URL,它会按预期返回一个空白页面

I can hit the URL above on the Nexus/A100 in a browser and it returns a blank page just as expected

使用相同连接的基于 Flex 的应用程序多年来一直没有问题 - 这是第一个使用该 HTTPS 连接的 AIR 应用程序

Flex-based apps using this same connection have been fine for years without problem - this is the first AIR app to use that HTTPS connection however

我正在使用 Captive Runtime 功能

I'm using the Captive Runtime feature

ColdFusion 9 后端

ColdFusion 9 backend

我无法调试网络流量,因为它只发生在平板电脑上,而且我目前不知道如何在平板电脑上捕获流量,就像我可以在笔记本电脑上使用 Fidder(正在研究)

I can't debug the web traffic because it only happens on the tablet, and I currently don't know how to capture traffic on a tablet, like I can on my laptop with Fidder (researching now)

我会尽快提供您需要的任何其他信息 - 请告诉我.

I will provide any other info you need, and as quickly as possible - just let me know.

除上述之外,我还查看了其他一些内容,例如:确保 crossdomain.xml 文件存在且设置正确,更改 CF 的 services-config.xml 文件中的设置等.

Other than the above, I've also looked at a few other things like: Ensure that the crossdomain.xml file exists and is setup properly, change the setting in CF's services-config.xml file, etc.

我目前的想法是,这可能与 SSL 证书中的链接有关 - 就像 Nexus 上不信任根 CA 之类的一样?(哪个是 GlobalSign Root CA)或者它与 Flex 时代和 IE/代理中的默认浏览器有关?

My current thought is that maybe it has something to do with chaining in the SSL Cert - like maybe the Root CA isn't trusted on the Nexus or something? (Which is GlobalSign Root CA) Or it has something to do with the default browser like in the Flex days and IE/proxies?

以前从未见过这种情况,所以我会尽我所能.

Never seen this before, so I'll take whatever help I can get.

[更新]:我创建了一个小样本,您可以用来复制这个问题:https://www.dropbox.com/s/5nmilo3tbwr2k8d/HTTPTestSource.zip

[UPDATED]: I have created a small sample you can use to replicate this issue: https://www.dropbox.com/s/5nmilo3tbwr2k8d/HTTPTestSource.zip

它将包含您需要的一切:源代码、已编译的 .AIR(适用于桌面)、已编译的 .APK(适用于 Android 设备).桌面在 HTTP 和 HTTPS 中运行良好,而移动 APK 仅适用于 HTTP.如果您愿意,我还提供了一个示例 CFC,可以放在您自己的服务器上.

It will contain everything you need: source, compiled .AIR (for desktop), compiled .APK (for android device). The Desktop works fine in HTTP and HTTPS, whereas the mobile APK only works for HTTP. I've also included a sample CFC to put on your own server if you want.

感谢您阅读到这里!

推荐答案

[RESOLVED]

嗯,我让它适合我的情况 - 希望这对其他人有帮助.

Well, I got it working for my situation - hope this helps for others.

问题在于 AIR Captive Runtime.使用 HTTPS 时它似乎不起作用.我不得不改用它,因为我的第一个开发硬件是 Kindle Fire,而 AIR Runtime 预装在 Kindle Fire 上,但我需要最新版本的 AIR.所以,我只是打开了 Captive Runtime 并继续我的快乐之路.

The problem is the AIR Captive Runtime. It doesn't seem to work when using HTTPS. I had to switch to it because my first development hardware was a Kindle Fire, and the AIR Runtime is pre-installed on the Kindle Fire, but I needed the most recent version of AIR. So, I just turned on the Captive Runtime and went on my merry way.

上线后,我们将端点更改为我们的 HTTPS 服务器,Kindle 继续工作,而所有其他平板电脑都出现故障.

When we went live, we changed the endpoint to our HTTPS server and the Kindles continued to work, where all other tablets failed.

为了解决这个问题,我关闭了 Captive Runtime 并重新编译,现在在卸载/重新安装后它可以在我所有的平板电脑上运行,除了Kindle Fire,我'只需要提供不同的安装.

To fix this, I turned OFF Captive Runtime and recompiled, and now after un/reinstalling it works on all my tablets, except the Kindle Fire, which I'll just have to provide a different install for.

希望这能帮助其他有同样问题的人.

Hopefully this helps others out there having the same problem.

这篇关于Adobe AIR 移动应用程序在 Nexus 平板电脑上使用 HTTPS 时失败,但可在 Kindle 上运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆