问题描述
我正在构建一个应该在 Android 8 和 Android 5 设备上运行的 Ionic 应用程序。该应用程序使用了我自己编写的两个 Cordova 插件,它在 Android 8 上运行良好,但是当我在 Android 5 上尝试时我我收到此错误:
I/chromium( 3639): [INFO:CONSOLE(5)] "Uncaught SyntaxError: Unexpected token =>",source: http://localhost/plugins/cordova-plugin-logger/www/Logger.js (5)
Logger.js
var exec = require('cordova/exec');
var java = function(method,args) {
return new Promise((resolve,reject) => {
try {
exec(resolve,reject,'Logger',method,args || []);
} catch (err) {
reject(err);
}
});
}
exports.TAG = "LOGGER";
exports.d = function(text) {
return java("logD",[exports.TAG,text]);
}
exports.e = function(text,err) {
if (!err && typeof text == "object") {
err = text;
text = "";
}
if (err && typeof err == "object") err = JSON.stringify(err);
if (err) text = text + " " + err;
return java("logE",text.trim()]);
}
同样的错误发生在其他插件和插件的 js 文件中。我使用的是 Ionic 6.12.4 和 Cordova 10(由于设备的兼容性问题,我无法更新任何这些组件)。
对问题可能是什么有任何想法吗?
TIA
维克多·埃斯皮纳
解决方法
好吧,事实证明 Cordova 似乎不喜欢 Android 5 插件代码中的 TypeScript。我将箭头函数更改为普通函数,将 LET 更改为 CONST/VAR,现在它可以完美运行。