Javascript Windows Phone上未触发Blob下载
我目前正在创建一个东西,在本地生成一个Javascript Windows Phone上未触发Blob下载,javascript,angularjs,Javascript,Angularjs,我目前正在创建一个东西,在本地生成一个PDF/CSV文件,并可供下载。我当前的代码在任何地方都能工作,除了Windows Phone(尤其是Lumia),它似乎不能处理BLOB Url 如何解决此问题并强制下载 vm.showPdf = function (documentKey) { var requestPayloadForShowPdf = { "DocumentList": documentKey, "AccountNumber": selectedAccountNumb
PDF
/CSV
文件,并可供下载。我当前的代码在任何地方都能工作,除了Windows Phone(尤其是Lumia),它似乎不能处理BLOB Url
如何解决此问题并强制下载
vm.showPdf = function (documentKey) {
var requestPayloadForShowPdf = {
"DocumentList": documentKey,
"AccountNumber": selectedAccountNumber
};
documentsService.getPdf(requestPayloadForShowPdf).then(function (obj) {
if (!obj.HasErrors) {
vm.isdispalyApiErrorMessage = false;
var byteCharacters = atob(obj.PdfDocument);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new window.Uint8Array(byteNumbers);
var blob = new Blob([byteArray], {
type: 'application/pdf'
});
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, "Statements(" + utilService.getLastFourDigits(selectedAccountNumber) + ").pdf");
} else {
var url = window.URL.createObjectURL(blob);
window.open(url);
}
} else {
vm.isdispalyApiErrorMessage = true;
vm.dispalyApiErrorMessage = utilService.getLiteralFromTranslate('stndrdAPIErrorMsg');//documentsResponse.Errors[0].Description;
}
});
vm.showPdf=函数(documentKey){
var requestPayloadForShowPdf={
“文档列表”:documentKey,
“AccountNumber”:选择的AccountNumber
};
documentsService.getPdf(requestPayloadForShowPdf)。然后(函数(obj){
如果(!obj.HasErrors){
vm.isdispalyapierromessage=false;
var byteCharacters=atob(对象PDF文档);
var byteNumbers=新数组(byteCharacters.length);
for(变量i=0;i
}) 您是否尝试设置标题内容类型:application/octet stream?请添加您的源代码。请阅读并相应更新您的问题。感谢@gp\U sflover的建议。我还添加了我的代码片段。您是否尝试设置标题内容类型:application/octet stream?请添加您的源代码。请阅读并相应更新您的问题。谢谢@gp\U sflover的建议。我还添加了我的代码片段。