Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Windows Phone上未触发Blob下载_Javascript_Angularjs - Fatal编程技术网

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的建议。我还添加了我的代码片段。