`

Flex:无缝安装AIR运行时在公司内网(防火墙)报下载失败的问题。

阅读更多

场景:

公司内网防火墙内,防火墙禁止了HTTPS,POST提交操作,允许GET提交,。

现象:

按照之前的文章 【Flex:AIR程序加上自动更新功能 AIR项目发布之在线无缝安装(Badge)详解 】

http://blog.csdn.net/huanghr_1/archive/2011/06/11/6538714.aspx,安装AIR程序,当系统没有安装AIR运行时时,ProductManager会去执行download运行时动作,问题就出现了:“下载出错。是否尝试重新下载?”如图1

(图1)

网上说出现此种现象的原因主要是浏览器的FlashPlayer插件的版本低于:10.0.22.87,升级FlashPlayer插件版本即可,以下是升级插件的地址,但我的问题在升级浏览器版本后依然存在。

http://www.adobe.com/software/flash/about/

尝试方法:

反编译无缝API的air.swf,expressinstall.swf,autoupdate.swf,从代码看不到有POST提交表单和HTTPS链接的地方,最可疑的是ProductManager.download 收集当前操作系统版本信息时使用了POST,无奈ProductManager是adobe.utils.ProductManager 是FP9/playerglobal.swc的一个类,需要反编译看看。

解决:

预期的结果应该是这样的,如图2,3:

问题没解决,公司内网只是部分用户,为了实现无缝安装AIR程序,只好在HTML页面做个提示,当出现“下载出错。是否尝试重新下载?”且FlashPlayer版本大于10.0.22.87时(查看版本:右击浏览器的任何一个Flash->关于,或者直接进入http://www.adobe.com/software/flash/about/ ),提示用户进入Adobe网站先安装运行时 http://get.adobe.com/cn/air/, 不直接提供本地下载地址的原因是

1)Adobe AIR协议声明分发需要额外授权,

2)官网可以自动检查当前操作系统版本并提供相应的下载页面。图

后话:此问题解决时,再更新博客。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics