Javascript 代码适用于桌面,但不适用于移动设备

标签 javascript mobile

我有一个网页的以下代码,该网页应该从相机或文件系统上传图像,然后将其转换为字符串,然后将其作为 JSON 请求发送。

var fileToLoad = new Blob([images[0]], {
            type: 'image/tif'
        });+

    var fileReader = new FileReader();
    fileReader.onload = function(fileLoadedEvent) {
        var srcData = fileLoadedEvent.target.result; // <--- data: base64

        var divTest = document.getElementById("imgTest");
        var newImage = document.createElement('img');
        newImage.src = srcData;

        imageString = newImage.outerHTML;
        //<img src="data:image/tif;base64,SUkqAAgAAAATAP4ABAABAAAAAAAAAAABBAABAAAAsAQAAAEBBAABA…71sXFsbHw8F/BP6Hr9+JZlWf//+1UVYRmCIUOFbllbXhaaSzELdERERERERET8//////8/AAIg">

        imageString = imageString.substring(32, imageString.length-2); //The above returns a string for <img src.......>. So this line removes the html stuff to leave just the image string
        console.log(imageString);


            var testJSON =
            {
                "jobWithDocsInitialization": {
                "InputVariables": [{
                    "Id": "InputVar",
                    "Value": "Conor"
                }],
                "RuntimeDocumentCollection": [{
                    "Base64Data": null,
                    "Data": null,
                    "DeleteDocument": true,
                    "DocumentGroup": {
                        "Id": null,
                        "Name": "",
                        "Version": 0
                    },
                    "DocumentName": "",
                    "DocumentTypeId": null,
                    "FieldsToReturn": null,
                    "FilePath": null,
                    "FolderId": null,
                    "FolderTypeId": null,
                    "MimeType": null,
                    "PageDataList": [{
                        "Data": null,
                        "Base64Data": imageString,
                        "MimeType": "image/tiff",
                        "RuntimeFields": {}
                    }],
                    "PageImageDataCollection": null,
                    "ReturnAllFields": true,
                    "RuntimeFields": null
                }],
                "StartDate": null
                },
                "processIdentity": {
                    "Id": null,
                    "Name": "DriversLicRTTI",
                    "Version": 10
                },
                "sessionId": "C640521793431F4486D4EF1586672385",
                "variablesToReturn": {"id":"loopIndex"}
            };

            ajax.send(JSON.stringify(testJSON));
    }

    fileReader.readAsDataURL(fileToLoad);

选择图像时将调用上面的代码。它会将选定的图像更改为字符串,然后再通过 JSON 请求将其发送出去。它应该能够在桌面或移动设备上的网络浏览器上运行。它在桌面上完美运行。我可以将我上传的图像转换为字符串并将其发送到我的服务器,没问题。

但是,当我在手机上执行相同操作时,我收到一条错误消息,提示“处理请求时出错:未定义”。

如果没有 Chrome 调试器(这是一个巨大的帮助)和机器上的 Fiddler 之类的东西,是否有任何方法可以找出可能出错的地方?我真的不知道如何在电话上解决这个问题。

最佳答案

根据 Jan 对我的问题的回答,我的 Android 手机的 Chrome 调试器运行完美。很快就解决了我的问题。

https://developer.chrome.com/devtools/docs/remote-debugging

关于Javascript 代码适用于桌面,但不适用于移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766696/

相关文章:

javascript - 存储客户端/服务器字符串过滤指令以供实时使用

javascript - 在字符串中搜索整个单词

javascript - 试图找出 jquery 语法

c# - 从移动应用程序技术启动移动应用程序

javascript - 语法错误 : missing ; before statement jquery jsonp

javascript - 选择具有最高 z-index 的 DIV

android - GridLayout 中的 Nativescript 垂直对齐不起作用

javascript - 在 React-native 中按下按钮后双触发

javascript - 是否可以通过网站控制手机上的相机灯?