2

現在、次の JS コードを使用して、現在のページを離れずにファイルのダウンロードをトリガーしています。

var iframe = document.createElement('iframe');
iframe.style.display = 'none';
document.body.appendChild(iframe);
iframe.src = "/somefile.zip";

ダウンロードがまったく開始されない標準の Android ブラウザーと Dolphin の両方を除いて、私がテストしたほとんどすべての場所でうまく動作します。これまでのところうまくいっていますが、いくつかの調査の結果、この隠された iframe のトリックはたまたま Android ブラウザーでは機能しないことがわかっています。

しかし、 Androidブラウザーでダウンロードをトリガーする他の方法をいくつか試しwindow.open()ました。ファイルですが、アプリが壊れます。<a target="_blank">click()window.open()document.location = ...

後者の問題document.location = ...は、これがコメット アプリケーション (サーバー プッシュ/ロング ポーリング) であるため、現在表示しているページから離れることができないことです (「離れる」にはdocument.location、ファイルのダウンロードのための変更も含まます。ブラウザーは現在のページにとどまります) そうしないと、長いポーリング接続が停止し、更新が停止し、アプリが壊れます。これは明らかに、手動またはシミュレートされた通常のリンクをクリックする場合にも当てはまります。

したがって、アプリを壊さないようにするために、現在のページを離れずにファイルのダウンロードをトリガーする必要があります。残念ながら、標準の Android ブラウザーでも機能する実行可能なソリューションは見つかりませんでした。

何か案は?

私を読んでくれてありがとう。

4

1 に答える 1