我可以在Cordova App上转换base64图像中的文本。它工作正常,但在一些设备中,脚本上出现了意外的令牌错误。
这里的功能是:
function socialShare(message, font) {
var y = 12;
var x = 18;
var canvas = document.getElementById("receipt");
var context = canvas.getContext("2d");
// calcula a largura da string mais larga
context.font = font;
var maxStrWidth = message.map(e => {
return context.measureText(e).width;
}).sort((a, b) => {
return b - a;
});
// configura a largura do canvas dinamicamente
canvas.width = maxStrWidth[0] + 9;
canvas.height = x * message.length;
// seta a cor do background do canvas
context.fillStyle = "#ffffe6";
context.fillRect(0, 0, canvas.width, canvas.height);
// escreve o texto
context.font = font;
context.fillStyle = "#000";
message.forEach(e => {
context.fillText(e, 3, y);
y += x;
});
// gera a string base64
let base64 = canvas.toDataURL("image/jpeg", 1);
// chamada do plugin social share
window.plugins.socialsharing.share(
null,
'Comprovante de Aposta',
base64,
null
);
}
var maxStrWidth 行会引发错误。你觉得它有什么问题吗?
答案 0 :(得分:1)
并非所有设备都支持ES6箭头功能,对于使用较旧的chrome webview版本的旧版Android尤其如此。
如果您打算支持旧设备,最好坚持使用标准功能声明。
进一步阅读:
https://strongloop.com/strongblog/an-introduction-to-javascript-es6-arrow-functions/