我目前正在使用cordova文件传输插件下载文件并在本地保存。我正在使用https,服务器证书已安装在设备中。
它适用于IOS和Android,但它不适用于Windows。
我能够调试插件的代码,并且在这部分中会出现错误消息“发生安全问题”并且现在将返回到具有FTErr.CONNECTION_ERR的应用程序:
var downloadOperation = download.startAsync();
// update internal TransferOperation object with newly created promise
fileTransferOps[downloadId].promise = downloadOperation;
downloadOperation.then(function () {...}, function(error)
{
if (error.message === 'Canceled') {
resolve(new FTErr(FTErr.ABORT_ERR, source, target, null, null, error));
} else if (error && error.number === HTTP_E_STATUS_NOT_MODIFIED) {
resolve(new FTErr(FTErr.NOT_MODIFIED_ERR, source, target, 304, null, error));
} else {
// in the other way, try to get response property
var response = download.getResponseInformation();
if (!response) {
resolve(new FTErr(FTErr.CONNECTION_ERR, source, target));
}
}
}
这是我在cordova中的代码:
fileTransfer.download(uri, fileURL, function (entry) {
console.log('file download successful');
}, function (errorMsg) {
console.log(errorMsg);
}, false, {
headers: {"Authorization": authToken},
});`
我有什么遗漏在Windows中使这个工作吗?
只是添加,使用http下载正在运行。 自从ajax开始工作以来,Https证书也是有效的。
谢谢!
答案 0 :(得分:0)
从MSDN,BackgroundDownloader不支持客户端证书。 https://social.msdn.microsoft.com/Forums/en-US/c25146d2-c051-4367-9745-2b526618dc35/winjsxhr-and-httpclient-work-with-client-certificates-backgrounddownloader-doesnt?forum=winappswithhtml5
所以我想现在唯一的办法就是创建一个使用HttpClient的插件。