H5 调用android原生相机代码分析

H5 页面在webView中调用原声相机:

H5 端的代码:如下:

<input id=”upload” type=”file” accept=”image/*;” capture=”camera” >    //文本输入框;

android端的代码:

webView.setWebChromeClient(newLiuyyWebChromeClient(this));

这里的 LiuyyWebChromeClient是自定义的 WebChromeClient对象;


下面贴一下LiuyyWebChromeClient类的代码

/**  * 作用: {1, 自定的实现webView拍照上传的工具类}  * 作者:liuyiyuan  * 日期:2016/11/10 10:48  * 邮箱:liuyiyuan@xnihuamm.net  * weixin: Dkalan  */  public class LiuyyWebChromeClient extends WebChromeClient {

    public interface OpenFileChooserCallBack {
        void openFileChooserCallBack(ValueCallback<Uri> uploadMsg, String acceptType);
        void openFileChooserCallBackAndroid5(ValueCallback<Uri[]> uploadMsg, String acceptType);
    }

    private OpenFileChooserCallBack mOpenFileChooserCallBack;  //选择图片回调接口   public LiuyyWebChromeClient(OpenFileChooserCallBack mOpenFileChooserCallBack)
    {
        this.mOpenFileChooserCallBack=mOpenFileChooserCallBack;
    }

    //For Android 3.0+  public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
        mOpenFileChooserCallBack.openFileChooserCallBack(uploadMsg, acceptType);
    }


    // For Android < 3.0  public void openFileChooser(ValueCallback<Uri> uploadMsg) {
        openFileChooser(uploadMsg, "");
    }


    // For Android > 4.1.1  public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
        openFileChooser(uploadMsg, acceptType);
    }


    // For Android > 5.0  @Override
    public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> uploadMsg, WebChromeClient.FileChooserParams
            fileChooserParams) {
        mOpenFileChooserCallBack.openFileChooserCallBackAndroid5(uploadMsg,"");
        return true;
    }


}

这里实现了对android 5.0 通过webView调用本地相机的支持;

工程demo对android 6.0系统也做了适配

如果需要完整的工程代码请下载附件 或者私信我(邮箱:liuyiyuan@xinhuamm.net)

demo页面测试账号( 王长顺, 123456,身份:教师);请勿随意上传图片,本系统有人在使用,谢谢支持配合。


    原文作者:六公子
    原文地址: https://blog.csdn.net/liu_dkalan/article/details/53116531
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞