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

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

H5 端的代码:如下:

   //文本输入框;


android端的代码:

webView.setWebChromeClient(newLiuyyWebChromeClient(this));

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


下面贴一下LiuyyWebChromeClient类的代码

/**
 * 作用: {1, 自定的实现webView拍照上传的工具类}
 * 作者:liuyiyuan
 * 日期:2016/11/10 10:48
 * 邮箱:[email protected]
 * weixin: Dkalan
 */

public class LiuyyWebChromeClient extends WebChromeClient {

    public interface OpenFileChooserCallBack {
        void openFileChooserCallBack(ValueCallback uploadMsg, String acceptType);
        void openFileChooserCallBackAndroid5(ValueCallback uploadMsg, String acceptType);
    }

    private OpenFileChooserCallBack mOpenFileChooserCallBack;  //选择图片回调接口

    public LiuyyWebChromeClient(OpenFileChooserCallBack mOpenFileChooserCallBack)
    {
        this.mOpenFileChooserCallBack=mOpenFileChooserCallBack;
    }

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


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


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


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


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

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

如果需要完整的工程代码请下载附件 或者私信我(邮箱:[email protected]

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


你可能感兴趣的:(android开发)