zoukankan      html  css  js  c++  java
  • WebView文件下载

    1.调用其它浏览器下载文件:

    这个很简单,我们只需为WebView设置setDownloadListener,然后重写DownloadListener的 onDownloadStart,然后在里面写个Intent,然后startActivity对应的Activity即可!

    关键代码如下

    wView.setDownloadListener(new DownloadListener(){
    @Override
    public void onDownloadStart(String url, String userAgent, String contentDisposition, 
        String mimetype, long contentLength) {
            Log.e("HEHE","开始下载");
            Uri uri = Uri.parse(url);
            Intent intent = new Intent(Intent.ACTION_VIEW,uri);
            startActivity(intent);
        }
    });

    如果你手机内存在多个浏览器的话,会打开一个对话框供你选择其中一个浏览器进行下载~


    2.自己写线程下载文件

    当然,你可能不想把下载文件放到默认路径下,或者想自己定义文件名等等,你都可以自己来写 一个线程来下载文件,实现示例代码如下:

    核心代码

    我们自己另外写一个下载的线程类:

    DownLoadThread.java

     

    然后MainActivity.java中创建并启动该线程:

    wView.setDownloadListener(new DownloadListener(){
        @Override
        public void onDownloadStart(String url, String userAgent, String contentDisposition, 
        String mimetype, long contentLength) {
                Log.e("HEHE","onDownloadStart被调用:下载链接:" + url);
                new Thread(new DownLoadThread(url)).start();
        }
    });

    注意事项

    好的,另外,别忘了写SD卡的读写权限以及Internet访问网络的权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    <!-- 在SDCard中创建与删除文件权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <!-- 往SDCard写入数据权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     
  • 相关阅读:
    如何高效学习读书笔记
    对Java虚拟机理解
    对Java虚拟机的认识和理解
    翻译一篇关于jedis的文章
    Java 异常机制
    spring boot基础 入门
    每天记录一个设计模式之建造者模式
    如何在mybatis 中使用In操作
    Git 基本命令有哪些
    JavaScript
  • 原文地址:https://www.cnblogs.com/feng747/p/14910317.html
Copyright © 2011-2022 走看看