14

Javascript で Chrome iOS から blob ファイルをダウンロードするには?

iOSからのダウンロードファイル(pdf、excel、txt、png)に取り組んでいます。iOS には、ダウンロードで問題となるファイル システムがありません。必要に応じて、OS とナビゲーターに応じて blob ファイルをダウンロードするコードを作成します。デスクトップ (Chrome と IE の最新バージョン)、モバイル Android (Chrome、ネイティブ ナビゲーター)、iOS iPad2 (Safari) でうまく動作します。

現在、Chrome iOS は Safari モバイルのようになっているはずですが、アルゴリズムが機能しません。Chrome iOS は新しいタブで開いてファイルをダウンロードしますが、ページは空です。

downloadUrl を作成するために独自の BLOB を作成します。

これはダウンロード機能の一部です。

    var URL = window.URL || window.webkitURL;
    var downloadUrl = URL.createObjectURL(iobBLOB);
    var newWindow = null;   

    if (typeof a.download === 'undefined') {
            var newWindow = null;
            newWindow = window.open(downloadUrl, '_blank');
            setTimeout(function() {
                newWindow.document.title = isbFilename;
            }, 10);
    }

詳細

iPad 2 および iPhone 4 でのデバッグ

Excel、pdf、txt、および Png ファイルをダウンロードしようとしています。

デバイスにはファイル システムがありません。

助けてくれてありがとう...もっと情報が必要な場合は教えてください。それが私の最初の質問です。

4

3 に答える 3

3

検索後、このソリューションは ChromeiOS と Safari で正常に動作するようです。この投稿「https://stackoverflow.com/questions/24485077/how-to-open-blob-url-on-chrome-ios?answertab=oldest#tab-top」で見つけました。これは私の問題を解決しました:

//isbContentType i.e. 'text/plain'
//isbFilename i.e. 'This is a title'
 var reader = new FileReader();
    reader.onload = function(e) {
       var bdata = btoa(reader.result);
       var datauri = 'data:' + isbContentType + ';base64,' + bdata;
       window.open(datauri);
       newWindow = setTimeout(function() {
           newWindow.document.title = isbFilename;
       }, 10);
    };
    reader.readAsBinaryString(iobBLOB);

blob ファイルをダウンロードする方法があると信じていましたが、そうではありませんでした。とにかくありがとう

于 2015-03-26T20:43:01.157 に答える
2
var reader = new FileReader();
var out = new Blob([response.data], { type: 'application/pdf' });
reader.onload = function(e) {
    window.location.href = reader.result;
}
reader.readAsDataURL(out);

// var blob = new Blob([response.data], { type: "application/pdf" });
var fileURL = URL.createObjectURL(out);
var a = document.createElement('a');
a.href = fileURL;
a.target = '_blank';
a.download = 'lkn_' + id + '.pdf';
document.body.appendChild(a);
a.click();
于 2020-08-30T09:50:40.060 に答える