我的学习笔记~自学安卓(十三):webview中无法调用手机相册和相机的问题

和WebChromeClient有关

mWebview.WebChromeClient(new WebChromeClient(){})或者自定义一个MyWebChromClient extends WebChromeClient

重写

onShowFileChooser 方法
private ValueCallback<Uri[]> mUploadCallbackAboveL;
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
    mUploadCallbackAboveL = filePathCallback;
    //camera(); 你的调用相机的方法
    //ChooseImg.fromtuku(mActivity); 你的调用图库的方法
    return true;
}

回调处理

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
   Uri result=null;  
   if (data == null) {
       if ( mUploadCallbackAboveL != null ) {
           mUploadCallbackAboveL.onReceiveValue(null);
           mUploadCallbackAboveL = null;
       }
       return;
   }else{
       if (null == mUploadCallbackAboveL ) {
          return;
       }
   }
   result= data.getData(); 你调用相机或图库得到的uri. 
   if(result!=null){
     mUploadCallbackAboveL.onReceiveValue(new Uri[]{result});
     mUploadCallbackAboveL = null;
   }
   super.onActivityResult(requestCode, resultCode, data);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值