ユーザーは、WebView を介してアプリケーション内のモバイル ページにログインします。次のコードを使用して、WebView リクエストからダウンロード可能なリソースをキャプチャし、インテントとして渡します。
webView.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
エミュレーターでは、これにより実際に Android ブラウザーが開き、ユーザーに再度ログインするように求められ、その時点でファイルのダウンロードが開始されます。
ユーザーが再度ログインする必要がないように、代わりに WebView から直接ダウンロードを開始する方法はありますか? デフォルトでは、この DownloadListener を追加しないと何も起こりません。
理想的には、ファイルがダウンロードされたら、ファイルに対してインテントを起動したいので、ユーザーが PDF ビューアーを持っている場合はすぐに切り替えます。