Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析未捕获的语法错误:意外标记>_Javascript_Android_Jquery_Cordova - Fatal编程技术网

Javascript 解析未捕获的语法错误:意外标记>

Javascript 解析未捕获的语法错误:意外标记>,javascript,android,jquery,cordova,Javascript,Android,Jquery,Cordova,我在Cordova应用程序上有一个转换base64图像中文本的功能。它工作正常,但在一些设备中,脚本上出现了意外的令牌错误 下面是函数: function socialShare(message, font) { var y = 12; var x = 18; var canvas = document.getElementById("receipt"); var context = canvas.getContext("2d"); // cal

我在Cordova应用程序上有一个转换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行上抛出。您认为它有什么问题吗?

并非所有设备都支持ES6 arrow功能,尤其是对于使用旧chrome webview版本的旧android版本

如果您打算支持较旧的设备,那么最好坚持使用标准函数声明

在此进一步阅读:


这些设备似乎不支持胖箭头语法。尝试在该行上方的某个位置添加一个空的fat arrow函数,看看它是否在新行中出错。哪些设备/浏览器会失败?错误出现在许多不同的设备上,但它们大多是4.X.X,很少是5.5.1安卓。我正在用Chrome Inspect调试应用程序。我更改了标准声明:message.forEache=function{context.fillTexte,3,y;y+=x;};现在我得到:ReferenceError:invalid assignment left-side这是因为forEach函数的语法错误。e=函数应更改为函数e{},因此在函数e中,当前消息值为?message.foreachfunction{context.fillTexte,3,y;y+=x;};哦,我错了,错误在这里:var maxStrWidth=message.mape=function{return context.measurettexte.width;}.sorta,b=function{return b-a;};我能做什么?同样,你应该把e作为一个参数传入。e=函数应该是函数e{}