类android.webkit.DownloadListener源码实例Demo

下面列出了怎么用android.webkit.DownloadListener的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: letv   文件: LetvWebViewActivity.java
protected void onCreate(Bundle savedInstanceState) {
    LogInfo.log("lxx", "LetvWebViewActivity onCreate");
    setNeedStatistics(true);
    super.onCreate(savedInstanceState);
    this.mWebView = getWebView();
    if (TextUtils.isEmpty(this.loadType) || !this.loadType.equals(LetvUtils.getString(R.string.letv_protol_name))) {
        this.mWebView.getSettings().setJavaScriptEnabled(true);
    } else {
        this.mWebView.getSettings().setJavaScriptEnabled(false);
    }
    this.mWebView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            LogInfo.log("LXF", LetvWebViewActivity.this.loadType + "<<-----------download url------------>>" + url);
            LogInfo.log("lxx", "DownloadListener,url: " + url + ",userAgent: " + userAgent + ",mimetype: " + mimetype + ",contentDisposition: " + contentDisposition + ",contentLength: " + contentLength);
            ApkDownloadAsyncTask.downloadApk(LetvWebViewActivity.this, url, LetvWebViewActivity.this.loadType);
            LetvWebViewActivity.this.finish();
        }
    });
    this.mWebView.setWebViewClient(new LetvWebViewClient());
}
 
源代码2 项目: letv   文件: LetvSearchWebViewActivity.java
protected void onCreate(Bundle savedInstanceState) {
    LogInfo.log("clf", "LetvSearchWebViewActivity");
    setNeedStatistics(true);
    super.onCreate(savedInstanceState);
    this.mWebView = getWebView();
    if (this.mWebView != null) {
        this.mWebView.getSettings().setUserAgentString(LetvUtils.createUA(this.mWebView.getSettings().getUserAgentString(), this));
        this.mWebView.setWebViewClient(new LetvWebViewClient());
        this.mWebView.setDownloadListener(new DownloadListener() {
            public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
                try {
                    LetvSearchWebViewActivity.this.mContext.startActivity(new Intent("android.intent.action.VIEW", Uri.parse(url)));
                } catch (Exception e) {
                }
            }
        });
    }
}
 
private DownloadListener getDownloadListener() {
    return new DownloadListener() {
        public void onDownloadStart(
            String url,
            String userAgent,
            String contentDisposition,
            String mimetype,
            long contentLength
        ) {
            Uri uri = Uri.parse(url);
            Request request = new Request(uri);
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
            request.setTitle("File download from Mattermost");

            String cookie = CookieManager.getInstance().getCookie(url);
            if (cookie != null) {
                request.addRequestHeader("cookie", cookie);
            }

            DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
            dm.enqueue(request);
       }
    };
}
 
源代码4 项目: rexxar-android   文件: RexxarWebViewCore.java
protected DownloadListener getDownloadListener() {
    return new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition,
                                    String mimeType, long contentLength) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            Uri uri = Uri.parse(url);
            intent.setData(uri);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            try {
                getContext().startActivity(intent);
            } catch (ActivityNotFoundException e) {
                e.printStackTrace();
            }
        }
    };
}
 
源代码5 项目: AgentWeb   文件: AgentWebSettingsImpl.java
@Override
public WebListenerManager setDownloader(WebView webView, DownloadListener downloadListener) {
    if (downloadListener == null) {
        downloadListener = DefaultDownloadImpl.create(mAgentWeb.getActivity(), webView, mAgentWeb.getPermissionInterceptor());
    }
    return super.setDownloader(webView, downloadListener);
}
 
源代码6 项目: letv   文件: InviteWebviewimpl.java
@SuppressLint({"AddJavascriptInterface"})
private void findView() {
    this.mWebView = getWebView();
    this.mWebView.getSettings().setCacheMode(2);
    this.mWebView.addJavascriptInterface(new JavaScriptinterface(this, this.mWebView, null), "LetvJSBridge_For_Android");
    this.mWebView.setWebViewClient(new LetvWebViewClient());
    this.mWebView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            ApkDownloadAsyncTask.downloadApk(InviteWebviewimpl.this, url, "Invite");
            InviteWebviewimpl.this.finish();
        }
    });
    LogInfo.log("+->", "loadURL--->>>" + this.loadUrl);
    LogInfo.log("+->", "baseUrl--->>>" + this.baseUrl);
}
 
源代码7 项目: Android_Skin_2.0   文件: CompatWebView.java
@Override
public void setDownloadListener(DownloadListener listener) {
	if (listener == mDefaultDownloadListener) {
		super.setDownloadListener(listener);
	} else {
		mDelegateDownloadListener = listener;
	}
}
 
源代码8 项目: VideoOS-Android-SDK   文件: CustomSettings.java
@Override
public WebListenerManager setDownloader(WebView webView, DownloadListener downloadListener) {
	return super.setDownloader(webView,
			DefaultDownloadImpl.create((Activity) webView.getContext()
					, webView, mAgentWeb.getPermissionInterceptor()));
}
 
源代码9 项目: dcs-sdk-java   文件: BaseWebView.java
public void setDownloadListener(DownloadListener listener) {
    super.setDownloadListener(listener);
}
 
源代码10 项目: AgentWeb   文件: CustomSettings.java
@Override
public WebListenerManager setDownloader(WebView webView, DownloadListener downloadListener) {
    return super.setDownloader(webView,
            DefaultDownloadImpl.create(this.mActivity
                    , webView, mAgentWeb.getPermissionInterceptor()));
}
 
源代码11 项目: AgentWeb   文件: AbsAgentWebSettings.java
@Override
public WebListenerManager setDownloader(WebView webView, DownloadListener downloadListener) {
    webView.setDownloadListener(downloadListener);
    return this;
}
 
源代码12 项目: prowebview   文件: ProWebView.java
/**
 * @see WebView#setDownloadListener(DownloadListener)
 * @deprecated Avoid calling this method. Use {@link #setProClient(ProClient)} instead
 */
@Override
@Deprecated
public void setDownloadListener(DownloadListener listener) {
    throw new UnsupportedOperationException("Avoid calling this method. Use setProClient(ProClient) instead.");
}
 
源代码13 项目: ClassSchedule   文件: Html5Activity.java
@SuppressLint("JavascriptInterface")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web);

    mSmoothProgress = findViewById(R.id.smooth_progress);

    Bundle bundle = getIntent().getBundleExtra("bundle");
    mUrl = bundle.getString("url");
    mTitle = bundle.getString("title", "");
    mJavaScriptInterface = bundle.getSerializable("javascript");

    initBackToolbar(TextUtils.isEmpty(mTitle) ? "加载中" : mTitle);

    Log.d("Url:", mUrl);
    Log.d("mTitle:", mTitle);


    mLayout = (LinearLayout) findViewById(R.id.web_layout);


    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    mWebView = new WebView(getApplicationContext());
    mWebView.setLayoutParams(params);
    mLayout.addView(mWebView);

    WebSettings mWebSettings = mWebView.getSettings();
    mWebSettings.setSupportZoom(true);
    mWebSettings.setLoadWithOverviewMode(true);
    mWebSettings.setUseWideViewPort(true);
    mWebSettings.setDefaultTextEncodingName("utf-8");
    mWebSettings.setLoadsImagesAutomatically(true);

    //调用JS方法.安卓版本大于17,加上注解 @JavascriptInterface
    mWebSettings.setJavaScriptEnabled(true);

    if (mJavaScriptInterface != null) {
        mWebView.addJavascriptInterface(mJavaScriptInterface, "android");
    }

    mWebView.setDownloadListener(new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            downloadByBrowser(url);
        }
    });

    saveData(mWebSettings);

    newWin(mWebSettings);

    mWebView.setWebChromeClient(webChromeClient);


    mWebView.setWebViewClient(webViewClient);
    mWebView.loadUrl(mUrl);
}
 
源代码14 项目: CustomActionWebView   文件: APIWebViewActivity.java
/**
 * 配置webView
 */
void setWebView() {
    //声明WebSettings子类
    WebSettings webSettings = mWebView.getSettings();

    //支持Javascript交互
    webSettings.setJavaScriptEnabled(true);


    //设置自适应屏幕,两者合用
    webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小
    webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小

    //缩放操作
    webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
    webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
    webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件

    //其他细节操作
    //webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存
    webSettings.setAllowFileAccess(true); //设置可以访问文件

    //对于不需要使用 file 协议的应用,禁用 file 协议;防止文件泄密,file协议即是file://
    //webSettings.setAllowFileAccess(false);
    //webSettings.setAllowFileAccessFromFileURLs(false);
    //webSettings.setAllowUniversalAccessFromFileURLs(false);



    webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口
    webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片
    webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式

    mWebView.setDownloadListener(new DownloadListener() {
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            //网页中触发下载动作
        }
    });

    //增加js交互接口
    mWebView.addJavascriptInterface(new JsCallAndroidInterface(), "JSCallBackInterface");
}
 
源代码15 项目: video-player   文件: ZbigzFragment.java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View InputFragmentView = inflater.inflate(R.layout.fragment_zbigz, container, false);
    tWebView = (WebView) InputFragmentView.findViewById(R.id.zbigz_web_view);
    tProgressBar = (ProgressBar) InputFragmentView.findViewById(R.id.zbigz_progress_bar);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        tWebView.getSettings().setAllowContentAccess(true);
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        tWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
        tWebView.getSettings().setAllowFileAccessFromFileURLs(true);
    }

    tWebView.getSettings().setAppCacheEnabled(true);
    tWebView.getSettings().setAllowFileAccess(true);
    tWebView.getSettings().setDatabaseEnabled(true);
    tWebView.getSettings().setDomStorageEnabled(true);
    tWebView.getSettings().setSaveFormData(true);
    tWebView.getSettings().setJavaScriptEnabled(true);
    tWebView.setWebViewClient(new WebViewClient());

    tWebView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
            mListener.onZbigzFragmentInteraction(url);
        }
    });

    tWebView.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress) {
            if (progress < 100 && tProgressBar.getVisibility() == ProgressBar.GONE) {
                tProgressBar.setVisibility(ProgressBar.VISIBLE);
                tWebView.setVisibility(WebView.GONE);
            }
            tProgressBar.setProgress(progress);
            if (progress == 100) {
                tProgressBar.setVisibility(ProgressBar.GONE);
                tWebView.setVisibility(WebView.VISIBLE);
            }
        }
    });

    tWebView.loadUrl("http://m.zbigz.com/");
    return InputFragmentView;
}
 
源代码16 项目: materialistic   文件: ShadowWebView.java
@Implementation
public void setDownloadListener(DownloadListener listener) {
    downloadListener = listener;
}
 
源代码17 项目: materialistic   文件: ShadowWebView.java
public DownloadListener getDownloadListener() {
    return downloadListener;
}
 
源代码18 项目: anvil   文件: DSL.java
public static Void downloadListener(DownloadListener arg) {
  return BaseDSL.attr("downloadListener", arg);
}
 
源代码19 项目: anvil   文件: DSL.java
public static Void downloadListener(DownloadListener arg) {
  return BaseDSL.attr("downloadListener", arg);
}
 
源代码20 项目: AgentWeb   文件: WebListenerManager.java
WebListenerManager setDownloader(WebView webView, DownloadListener downloadListener);