任何使用Chrome 21 Pepper Flash的动作脚本安装检测失败的解决方案?

时间:2012-08-06 19:29:57

标签: flash google-chrome actionscript air adobe

我们有一个启动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下完全正常工作。

3 个答案:

答案 0 :(得分:1)

与Google论坛上的此错误报告相关:

Chromium Bug Report

看起来还没有解决方法。

答案 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。不幸的是,我们所能做的只是投入并希望。 :/