【问题标题】:Is there any way to use Flash in an HTML-based mobile app?有没有办法在基于 HTML 的移动应用程序中使用 Flash?
【发布时间】:2014-07-16 20:36:14
【问题描述】:

我们正在尝试将 HTML 和 Flash 结合到一个打包的移动应用程序中。它需要在 Android 上工作,如果它也能在 iOS 上工作,那就太好了。一种选择是将 AIR 与包含 StageWebView 的 SWF 根一起使用,这应该可以工作,但我们更愿意让应用程序的根为 HTML 并根据需要加载 SWF 内容。有没有办法做到这一点,例如,使用 Phonegap/Cordova 或类似的,也许使用插件?

【问题讨论】:

  • swf 在您的应用程序中的作用是什么?它执行代码吗?还是只有动画?
  • IMO 没有意义。为 AIR 重写你的 swf 并用它为所有平台制作一个应用程序..

标签: android actionscript-3 flash cordova phonegap-plugins


【解决方案1】:

我想警告您,移动 webView 存在很多问题和限制。对我来说,将 Flash 播放器放在移动 webView 中是非常糟糕的主意(它看起来像沼泽中的城堡)。 AIR 作为根应用程序绝对是更好的解决方案(但无论如何 StageWebView 也带来了很多痛苦,它只是对原生 webView afaik 的包装)。

好吧,但是如果您选择的是 HTML,请尝试修补 cordova\phonegap 模板(找到 CordovaActivity 类)以启用 Flash 内容,如下所示:

WebSettings settings = appView.getSettings();
settings.setPluginState(PluginState.ON);

【讨论】:

  • 我可以看到这将启用插件。但是 Flash 插件是否需要已经安装在设备上,或者 Cordova 是否将其与应用程序捆绑在一起?据我了解,Android 浏览器不再支持 Flash。
  • @JesseCrossen 你找到解决这个问题的方法了吗?我知道它很久以前,但它可能会帮助我。
  • @MuhammadMehdiRaza 我们当时选择的解决方案是在 AIR 中运行应用程序并使用 webview 来显示 HTML 内容,正如上面 Eric 所建议的那样。应用程序和 webview 之间的通信有点复杂,但可以使用 javascript:// URI 将数据从 AIR 发送到 HTML,并通过监听 webview 位置的更改以从 HTML 到 AIR 获取数据。然而,基于 Adob​​e 似乎对这项技术的三心二意的支持,如果您有其他选择,我不建议您在 Flash 上创建新项目。
【解决方案2】:

如果您想以 HTML 作为根,这意味着您将 Flash Player 作为插件运行。自 2012 年以来,Adobe 停止支持移动版 Flash Player。这意味着它可以轻松完成 - 就像将您的 swf 嵌入 HTML 页面一样,但它几乎无法在任何设备上运行。这是因为播放器必须作为浏览器插件安装。你想要的是嵌入 swf,就像你在桌面上做的那样,并祈祷浏览器安装并运行它。现在大多数设备都不支持它。

没有任何简单的解决方法,因为 Adob​​e 切断了绳索。这是应该做的正确方法,因为 Flash 将成为 HTML 的一部分。它无法访问任何硬件,也没有写入权限之类的东西。

因此,如果您想在移动设备中使用 Flash,几乎可以肯定它必须在 AIR 中——它是本机包装器。

简短的回答基本上是 - 是的,只需将它作为 swf 嵌入 HTML 中,但它不会在很多设备上工作 :)

【讨论】:

    【解决方案3】:

    这是不可能的。 IOS没有插件支持。

    Android 的情况稍微好一些,因为 Adob​​e 在 Android 4.2 之后/与 Android 4.2 之后停止发布插件。安装了插件的旧设备可以工作,其余的则不能。此外,自几年前我检查过它以来,如果他们没有完全改变它,那么 Adob​​e 的插件使用条款也不允许您将它与您的应用程序捆绑在一起。

    有些解决方案可能会在某一天为您提供您想要的东西,但恕我直言,它们还没有准备好。不过,这里有一些链接:

    这意味着,如果您想在同一移动设备上结合 Flash 和 HTML,Air 是您目前唯一的重要选择。

    如果您仍处于项目的规划阶段或愿意重新编写代码,您还可以评估 Haxe/OpenFL,它不是 FLASH,但可以让您使用 Haxe 语言(类似于 AS3)开发您的应用程序,使用类似 Flash 的显示模型 - 然后将项目导出为 HTML5、SWF(也称为 Air)或适用于 IOS/Android 的原生移动应用程序:

    【讨论】:

    • 这是可能的,但有很多限制。尤其是在谈论 Android 时。
    • @Andrey:是的,在有限数量的带有过时 Android 版本的设备上是可能的。正如您在上面看到的,我自己提到了它。但要求是“它需要在 Android 上运行”,我将其解释为“它需要在大多数 android 设备上运行”,但事实并非如此。如今,没有人会开始使用基于移动 Flash 插件的应用程序。
    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多