我们有一个启动AIR应用程序的Flash按钮,无法正确检测到在用于Chrome 21的新辣椒插件(仅适用于Windows)下安装了AIR。以下是我们的操作脚本的代码片段:
internal var airSWFLoader:Loader = new Loader();
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, airSWF_init);
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"), loaderContext);
internal function airSWF_init(event:Event):void {
try {
airSWF = event.target.content;
airSWF.getAIRStatus(); //fails to detect AIR here with value "available"
} catch (e:Error) {
Logger.error(e.message,e.errorID);
}
对getAIRStatus()的调用返回“可用”而不是“已安装”,就像在同一台机器上直接使用Adobe常规Flash插件的其他浏览器一样。
想知道是否有其他人遇到类似问题,或者是否有更好的方法来检测是否安装了AIR?这可以防止我们的应用程序在Windows上的Chrome 21下完全正常工作。
答案 0 :(得分:1)
答案 1 :(得分:1)
我们长期遇到这个问题并且有一个解决方法,用户每次使用我们的服务时都会下载并安装我们的Native Air应用程序。这将在安装后启动我们的应用程序并使用剪贴板进行参数 - 或者我们让用户在其设置中手动启用我们的域 - 显然是次优的。
然后我找到了以下文章: http://helpx.adobe.com/flash-player/kb/unsandbox-localconnection-chrome.html
这要求使用 flashfileattributes 实用程序,该实用程序可从以下网址下载:https://support.influxis.com/hc/en-us/articles/203135797-ICS-Chrome-Screen-Share-Pepper-Flash-Fix
本文讨论了如何在Chrome中启用LocalConnections。它没有提到Air或Air Browser API,但我有一种预感,即LocalConnection是如何完成的。
从示例中解脱出来,我能够与我们的Air应用程序进行通信并启动我们的应用程序。
我会提出一个建议 - 看看传递给你的下载回调的事件 - 我原本没有为Flash Enabler下载对话框留出足够的空间,所以我得到了一个2074(舞台上没有足够的空间) )错误。一旦清理完毕,它就像一块宝石。
如果我有时间清理我们的代码,我会发布它。否则 - 我希望这有帮助!
答案 2 :(得分:0)
由于Chrome沙盒Flash的新方式打破了空气集成,它正在发生。我已向Adobe提交了有关它的错误here。不幸的是,我们所能做的只是投入并希望。 :/