現在、次の 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 ブラウザーでも機能する実行可能なソリューションは見つかりませんでした。
何か案は?
私を読んでくれてありがとう。