繁体   English   中英

iOS 应用程序 WKWebView 上传图片时出错

[英]iOS app WKWebView error when uploading image

WKWebView ,当我通过 Ajax 使用 FormData 将图像上传到我们的服务器时,我收到此警告。 整个过程顺利完成。

任何人都可以建议缺少的权利是什么。 我已查看与WKWebView相关的权利

在控制台中,我看到 pid 与“webkit.uploads”相关联

“缺少所需的客户端权利”请求原因:FinishTaskUnbounded; 原因:FinishTaskUnbounded; 标志:PreventTaskSuspend>

// xcode debug console on submit   
MyDomain[3002:428982] [ProcessSuspension]  0x104be68a0 - ProcessAssertion() PID 3002 Unable to acquire assertion for process with PID 3002
MyDomain[3002:427999] [ProcessSuspension] 0x104be68a0 - ProcessAssertion::processAssertionWasInvalidated()
MyDomain[3002:428982] [assertion] Error acquiring assertion: <NSError: 0x281b3b6f0; domain: RBSAssertionErrorDomain; code: 2; reason: "Required client entitlement is missing"> {
    userInfo = {
        RBSAssertionAttribute = <RBSLegacyAttribute: 0x100f2ee40; requestedReason: FinishTaskUnbounded; reason: FinishTaskUnbounded; flags: PreventTaskSuspend>;
    }
}


// javascript upload code
var formData=new FormData();
formData.append("action", 'save');

var fileInput = document.getElementById('addImage');
if (fileInput.files && fileInput.files[0]) {
    var file = fileInput.files[0
    formData.append('messageImage', file);
    hasFile = true;
}

if(hasFile){
    $.ajax({
       type: "POST",
       url: "/images/save",
       data: formData,
       dataType: 'json',
       contentType: false,
       processData: false,
       success: function(result){}
    });
}

我对来自 wkWebView 的这个和其他错误有预感,我想我证明了这一点。 它与文件上传时间过长有关,iOS 抱怨它,并且 wkWebView 被“释放”(根据另一个线程)。 就我而言,我的上传需要 5 到 13 秒。

我在 Web Worker 中实现了我的上传,结果在 Cordova 上有点棘手,但是一旦我这样做了,所有问题都消失了。

所以我的修复似乎只在我的开发机器上的模拟器中解决了这个问题,它使用的是 iOS 13.3。 当我在运行 iOS 13.7 的“生产”机器上构建时,错误返回。 在将文件上传到 Worker 之前,这两种环境都发生了这种情况。

似乎苹果正在向 iOS 添加一些触发这些但尚未记录或解释的内容。 这是我的新理论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM