あなたはWebViewのJavascripInterface経由でアンドロイドでDownloadManagerとダウンロードを発射することができるはずです。私は今までこれを成功させることなく試しています。 webviewとDownloadManagerが動作している状況に問題がある可能性があります。動作するように起こっている場合、私はいくつかのコードに戻ってくるだろう:)
UPDATE:
次のコードは、私のために非常に適しています。ファイル、.mp3ファイルとによって処理される他のすべてのリンクをの.apkするために、私はリンクを管理上のコードでは(ちょうどあなたが唯一のAndroidからDownloadManagerを使用することができますbeaware 2.3+)
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Log.d("WEB_VIEW_TEST", "error code:" + errorCode + " - " + description);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// handle different requests for different type of files
// this example handles downloads requests for .apk and .mp3 files
// everything else the webview can handle normally
if (url.endsWith(".apk")) {
Uri source = Uri.parse(url);
// Make a new request pointing to the .apk url
DownloadManager.Request request = new DownloadManager.Request(source);
// appears the same in Notification bar while downloading
request.setDescription("Description for the DownloadManager Bar");
request.setTitle("YourApp.apk");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
// save the file in the "Downloads" folder of SDCARD
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "SmartPigs.apk");
// get download service and enqueue file
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
}
else if(url.endsWith(".mp3")) {
// if the link points to an .mp3 resource do something else
}
// if there is a link to anything else than .apk or .mp3 load the URL in the webview
else view.loadUrl(url);
return true;
}
});
:あなたのようなものを使用することができますウェブビュー(通常のHTMLページ)
あなたはそうです。実際にはダウンロードクライアントには向いていません。私は自分自身でそのダウンロードの意図を呼び出す必要がありますが、それはhtmlをダウンロードするだけです。 –