Android如何使用腾讯X5浏览器上传图片

  介绍

小编给大家分享一下安卓如何使用腾讯X5浏览器上传图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

这几天在客户端接入一个Web页的客服系统,用来接受用户的反馈和建议.Android客户端集成这个客服H5之后,图片死活传递不上去。看了一下iOS同事的集成效果,可以自由上传图片,再把H5的地址用Android原生浏览器打开,也可以正常打开相册上传图片。

 Android如何使用腾讯X5浏览器上传图片

看了一些博客,使用安卓的WebView在默认情况下是不能够支持上传文件的(需要重写alt=" Android如何使用腾讯X5浏览器上传图片">

1,文件选择

方法一:文件单选:设置客户端回调

mWebView.setWebChromeClient (new  WebChromeClient (), {   @Override才能   public 才能;void  openFileChooser (   ,,,ValueCallback,还是,   ,,,String  acceptType,,   ,,,String  captureType), {   ,,,//保存对应的valuecallback供选择后使用   ,,,//通过startActivityForResult启动文件选择窗口或自定义文件选择   ,,},   });

文件多选:设置客户端回调

mWebView.setWebChromeClientExtension (new  ProxyWebChromeClientExtension (), {   @Override才能   public 才能;void  openFileChooser (   ,,,android.webkit.ValueCallback

方法二:设置客户端回调(单选多选均会回调该接口)

mWebView.setWebChromeClient (new  WebChromeClient (), {   @Override才能   public 才能;boolean  onShowFileChooser (   ,,,IX5WebViewBase  webView,,   ,,,ValueCallback

然后在活动返回时将用户的选择设置给对应的ValueCallback

protected  void  onActivityResult (int  requestCode, int  resultCode,, Intent 数据),{//才能如果是文件选择   if 才能;(resultCode ==, RESULT_OK), {   ,,,//给文件选择的ValueCallback设置onReceiveValue值   ,,},else  if  (resultCode ==, RESULT_CANCELED), {   ,,,//给文件选择的ValueCallback设置零值   ,,}   }

2,实现文件单选

在项目自定义的WebChromeClient中,重写openFileChooser方法,调用项目中图片选择组件,图片选择成功后将生成的uri使用valueCallback回调,即可上传成功

,,//,图片单选上传   @Override才能   public 才能;void  openFileChooser (ValueCallback

实现效果:

 Android如何使用腾讯X5浏览器上传图片

3,举个例子

为简单起见,集成一个第三方的图片选择控件

github.com/thewyp/Avat…

集成方式:

dependencies  {   ,,,,,,,…   ,,,,,,,compile  & # 39; me.thewyp:《阿凡达》:1.0.4 # 39;   ,,,,,}

使用方式:

new  AvatarStudio.Builder (activityContext)   ,,,,,,,,,,,,,.needCrop(真正的)//是否裁剪,默认裁剪   ,,,,,,,,,,,,,.setTextColor (Color.BLUE)   ,,,,,,,,,,,,,.dimEnabled(真正的)//背景是否dim 默认真   ,,,,,,,,,,,,,.setAspect(1, 1)//裁剪比例,默认1:1   ,,,,,,,,,,,,,.setOutput(200,, 200)//裁剪大小,默认200 * 200   ,,,,,,,,,,,,,. settext(“打开相机“,,“从相册中选取“,,“取消“)   ,,,,,,,,,,,,,,告诉(new  AvatarStudio.CallBack (), {   ,,,,,,,,,,,,,,@Override   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Android如何使用腾讯X5浏览器上传图片