Android Webview 调起系统相机、相册

本文介绍了如何在Android的Webview中实现调用系统相机和相册的功能。通过分析H5源码,发现使用<input>标签的capture和multiple属性来触发相机或相册。当type为file的标签被点击时,WebChromeClient的onShowFileChooser方法会被调用。通过fileChooserParams对象可以获取到H5中的属性值,从而判断是打开相机还是相册。最后,给出了具体的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司有个业务需求,需要在H5页中可以分别调起相同中的相机、相册。拿到该H5页看了一下,H5中调起相机和打开相册的源码分别是:

#调起相机
<input type="file" accept="image/*" capture="camera"/>

#打开相册
<input type="file" accept="image/*" multiple="multiple"/>

从这两个代码分析出打开相机可能用到capture属性,打开相册中的multiple属性应该是表示可以选择多张图片。在Android Webview中,当type为file的<input>标签被点击时,WebChromClient中的onShowFileChooser方法将被回调,因此,打开相册或者调起系统相机的业务逻辑可以从这里开始。

public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams);

接下来,分析一下这个方法,怎样才能知道何时打开相册,何时调起相机。

这个方法只有3个参数,分别是

webview:这个就不用说了;

filePathCallback:回调接口,返回选择到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值