簡體   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