【发布时间】: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 10、Galaxy S8、Galaxy S6)。
但是,当我尝试在 Samsung Galaxy S5 上运行应用程序时,应用程序在启动时在控制台上显示错误:
Uncaught ReferenceError: WebAssembly is not defined
然后,当我单击一个调用与 openCV 相关的任何内容的按钮时,我会收到以下消息:
ERROR Error: Uncaught (in promise): ReferenceError: cv is not defined
当然,openCV 功能不起作用。我意识到这一定与手机很旧有关,但我想确切地知道为什么它可以在其他手机上运行但不能在这个手机上运行。也许,如果可能的话,最好找出可以做些什么来让它在这款手机和其他类似的手机上运行。
这是一个Samsung Galaxy S5 和Android 5.0。
我也不太明白为什么在这种特殊情况下需要 WebAssembly。我以为我从这里https://docs.opencv.org/master/opencv.js 下载的opencv.js 文件只是一个包含必要功能(如lib)的JS 文件。 webassembly 如何在这里发挥作用?
【问题讨论】:
标签: android typescript opencv ionic-framework webassembly