【问题标题】:Ionic 4 WebAssembly is not defined with OpenCV on an older phoneIonic 4 WebAssembly 未在旧手机上使用 OpenCV 定义
【发布时间】:2020-05-09 23:21:14
【问题描述】:

我正在尝试使用 Ionic 框架(第 4 版)开发一个简单的图像处理移动应用程序。 我决定使用OpenCV.js 库,我将它添加到我的ionic 项目的方式是:

1) 我把opencv.js文件放在app/assets/lib/opencv.js

2) 我添加了

 "scripts": [
          "src/assets/lib/opencv.js"
        ]

在我的angular.json 文件中。

3) 我将declare var cv: any; 放在我需要使用opencv 库的任何ts 文件的顶部,然后我只使用cv 来引用opencv.js 函数,例如cv.imread(image)

我的应用程序在浏览器和一些测试设备上运行良好(我试过Galaxy Note 10Galaxy S8Galaxy S6)。 但是,当我尝试在 Samsung Galaxy S5 上运行应用程序时,应用程序在启动时在控制台上显示错误:

Uncaught ReferenceError: WebAssembly is not defined

然后,当我单击一个调用与 openCV 相关的任何内容的按钮时,我会收到以下消息:

ERROR Error: Uncaught (in promise): ReferenceError: cv is not defined

当然,openCV 功能不起作用。我意识到这一定与手机很旧有关,但我想确切地知道为什么它可以在其他手机上运行但不能在这个手机上运行。也许,如果可能的话,最好找出可以做些什么来让它在这款手机和其他类似的手机上运行。

这是一个Samsung Galaxy S5Android 5.0

我也不太明白为什么在这种特殊情况下需要 WebAssembly。我以为我从这里https://docs.opencv.org/master/opencv.js 下载的opencv.js 文件只是一个包含必要功能(如lib)的JS 文件。 webassembly 如何在这里发挥作用?

【问题讨论】:

    标签: android typescript opencv ionic-framework webassembly


    【解决方案1】:

    报告的错误表明您使用的设备和浏览器不支持 WebAssembly。有关支持的概述,请参阅以下内容:

    https://caniuse.com/#feat=wasm

    【讨论】:

    • 谢谢。我如何知道此设备上的 android 中的 WebView 使用哪个浏览器?如何告诉 Webview 使用支持 Web 组装的不同浏览器?
    猜你喜欢
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2019-05-15
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多