1

WebViewAndroid でのファイルのダウンロードのサポートに関して、多くの未解決の問題に遭遇しました。

MainActivity.javasimpleのコード (全体) は次のWebViewとおりです。

package com.webview.downloader;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.pad.android.xappad.AdController;

public class MainActivity extends Activity {

    WebView mWeb;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        mWeb = new WebView(this);
        setContentView(mWeb);
        WebSettings settings = mWeb.getSettings();
        settings.setJavaScriptEnabled(true);

        mWeb.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
            }
        });
        mWeb.loadUrl("http://www.site-with-direct-links.somehostingsite.com");
    }
}

このコードでは、URL を開いてリンクをクリックしても何も起こりません。

次のコードを追加する必要があります (の直後mWeb.loadUrl();)。

  mWeb.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);
      }
  });

このコードを使用すると、Web をサーフィンしたり、ファイルをダウンロードしたりできます。http://www.google.czのようなものをクリックすると、WebViewクリックするとそのサイトにユーザーがリダイレクトされます: http://www.google.cz/download-file.apk、デフォルトのブラウザまたはその他のブラウザGoogle Chrome (選択後) が短時間ポップアップ表示され、その後ダウンロードが開始されます。

私の質問は次のとおりです。ブラウザを開かずにファイル( .zip.rar.apk )のダウンロードを開始するにはどうすればよいですか。

もちろん、私はドキュメントを調べ、スタックも検索しましたが、これでうまくいきませんでした。実際の例は良いでしょう、私のコードへの変更はさらに良く聞こえます!

4

0 に答える 0