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

来源:互联网 发布:mac总是显示flash过期 编辑:程序博客网 时间:2024/05/16 14:56

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,身份:教师);请勿随意上传图片,本系统有人在使用,谢谢支持配合。


2 0
原创粉丝点击