Cordova 应用程序:Android 是不是支持 webassembly?

Posted

技术标签:

【中文标题】Cordova 应用程序:Android 是不是支持 webassembly?【英文标题】:Cordova application: does webassembly supported on Android?Cordova 应用程序:Android 是否支持 webassembly? 【发布时间】:2018-06-26 00:07:21 【问题描述】:

我正在使用 Cordova + Webassembly 开发一个应用程序。

客户需要该应用在 Windows 和 android 上运行。 我正在使用 Visual Studio 2017 + TACO。

WebAssembly 是使用 emscripten 从 C/C++ 代码生成的,在 Edge 和 Chrome 上运行良好。它也适用于 Android 设备 (Chrome)

在 Windows 上运行的 Cordova 应用运行良好。

现在我的问题是在 Android 上。 Android 上的 Cordova 应用会记录此错误:

Fetch API cannot load file:///android_asset/www/script/myApp.wasm. URL scheme "file" is not supported.

如果 Cordova 在 Android 上支持 WebAssembly,我找不到任何地方。我的理解是 Android 正在使用 WebView 组件并且应该依赖 Google Chrome(我的 Webassembly 在 Android 上的 Chrome 上运行良好)。 有没有一个选项可以在 android 上为 cordova 添加 mime 类型?

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

还有另一个选项使用XMLHttpRequest 对象,如https://studiolacosanostra.github.io/2020/02/23/How-to-run-rust-wasm-on-cordova/ 所示。

当然,你不需要像他们那样覆盖fetch 函数,但你当然可以使用这个想法来创建你自己的函数。

【讨论】:

【参考方案2】:

正如您在控制台中看到的,“对于 CORS 请求,URL 方案必须是“http”或“https”。

【讨论】:

所以使用类似cordova-plugin-httpd 的东西可能会让它工作。可能需要配置设置文件类型,我没试过。

以上是关于Cordova 应用程序:Android 是不是支持 webassembly?的主要内容,如果未能解决你的问题,请参考以下文章

Web 推送通知是不是可以在 Apache Cordova Android 应用程序中使用?

Ajax 请求通过浏览器工作,而不是通过 iOS 或 Android 模拟器中的 Cordova 应用程序

使用 Cordova-Android 6.2.0 的 Cordova 错误 - getFileResources 不是函数

使用cordova防止android编辑栏

phonegap/cordova 的 Media 类是不是克服了 html5 中 iOS/android 音频的限制?

如果 Android (Cordova) 上的尺寸超过 256 像素,画布会闪烁