How to download files in webview..?

雨燕双飞 提交于 2019-12-23 02:56:24

问题


My app would open browser to download files,but I want it to download in webview(Don't open browser to download). I'm not good at app,plz give me complete codes as you can.

 using System;
    using Android.App;
    using Android.Content;
    using Android.Runtime;
    using Android.Views;
    using Android.Widget;
    using Android.OS;
    using Android.Webkit;

    using System.Net;
    namespace REC
    {
        [Activity(Label = "ABC", MainLauncher = true, Icon = "@drawable/rec512", ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize)]

        public class MainActivity : Activity
        {

            private WebView mWebView;
            protected override void OnCreate(Bundle bundle)
            {
                base.OnCreate(bundle);

                // Set our view from the "main" layout resource
                RequestWindowFeature(WindowFeatures.NoTitle);
                SetContentView(Resource.Layout.Main);

                mWebView = FindViewById<WebView>(Resource.Id.webview);
                mWebView.Settings.SetRenderPriority(WebSettings.RenderPriority.High);
                mWebView.Settings.JavaScriptEnabled = true;
                mWebView.SetWebChromeClient(new WebChromeClient());
                mWebView.LoadUrl("http://www.mywebsite");
                mWebView.SetDownloadListener(new MyDownloadListerner(this));
                mWebView.SetWebViewClient(new WebViewClient());




            }









            class MonkeyWebChromeClient : WebChromeClient
            {
                public override bool OnJsAlert(WebView view, string url, string message, JsResult result)
                {
                    return base.OnJsAlert(view, url, message, result);
                }

                public override Boolean OnJsConfirm(WebView view, String url, String message, JsResult result)
                {
                    return base.OnJsConfirm(view, url, message, result);
                }

                public override Boolean OnJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result)
                {
                    return base.OnJsPrompt(view, url, message, defaultValue, result);
                }
            }

            public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
            {
                if (keyCode == Keycode.Back && mWebView.CanGoBack())
                {
                    mWebView.GoBack();

                    return true;
                }

                return base.OnKeyDown(keyCode, e);
            }





        }
        public class WebClient : WebViewClient
        {

            public override bool ShouldOverrideUrlLoading(WebView view, string url)
            {



                    //return base.ShouldOverrideUrlLoading(view, url);
                    view.LoadUrl(url);
                    return true;


            }

            internal object GetWebRequest(Uri address)
            {
                throw new NotImplementedException();
            }
        }




class MyDownloadListerner : Java.Lang.Object, IDownloadListener
    {
        Context cont;
        public MyDownloadListerner(Context context)
        {
            cont = context;
        }
        public void OnDownloadStart(string url, string userAgent, string contentDisposition, string mimetype, long contentLength)
        {
            Android.Net.Uri uri = Android.Net.Uri.Parse(url);
            Intent intent = new Intent(Intent.ActionView, uri);
            cont.StartActivity(intent);
        }
    }





}

A necessary message A necessary message A necessary message A necessary message

来源:https://stackoverflow.com/questions/43444934/how-to-download-files-in-webview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!