Android应用开发之Android WebView图片文件上传的问题
白羽 2018-12-19 来源 :网络 阅读 244 评论 0

摘要:本文将带你了解Android应用开发Android WebView图片文件上传的问题,希望本文对大家学Android有所帮助。

    本文将带你了解Android应用开发Android WebView图片文件上传的问题,希望本文对大家学Android有所帮助。



        

Android使用Webview加载包含选择图片上传的网页有问题,ios正常 坑啊 最终还是解决了。




以下下在Activity里加载Webview Fragment没试原理都一样

本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:

新建AotuWebChromeClient继承WebChromeClient
openFileChooser()方法5.0以下 onShowFileChooser()方法 5.0以上


   

package com.dwb.renrendaipai.mywebview;

 

import android.net.Uri;

import android.webkit.ValueCallback;

import android.webkit.WebChromeClient;

import android.webkit.WebView;

 

/**解决H5图片上传问题

 * Created by dwb on 2018/6/15.

 */

 

public class AotuWebChromeClient extends WebChromeClient{

 private OpenFileChooserCallBack mOpenFileChooserCallBack;

 

 public AotuWebChromeClient(OpenFileChooserCallBack openFileChooserCallBack) {

  mOpenFileChooserCallBack = openFileChooserCallBack;

 }

 

 public void openFileChooser(ValueCallback<uri> uploadMsg, String acceptType) {

  mOpenFileChooserCallBack.openFileChooserCallBack(uploadMsg, acceptType);

 }

 

 public void openFileChooser(ValueCallback<uri> uploadMsg) {

  openFileChooser(uploadMsg, "");

 }

 

 public void openFileChooser(ValueCallback<uri> uploadMsg, String acceptType, String capture) {

  openFileChooser(uploadMsg, acceptType);

 }

 

 public boolean onShowFileChooser(WebView webView, ValueCallback<uri[]> filePathCallback,

 FileChooserParams fileChooserParams) {

 

  return mOpenFileChooserCallBack.openFileChooserCallBackAndroid5(webView, filePathCallback, fileChooserParams);

 }

 

 public interface OpenFileChooserCallBack {

  // for API - Version below 5.0.

  void openFileChooserCallBack(ValueCallback<uri> uploadMsg, String acceptType);

 

  // for API - Version above 5.0 (contais 5.0).

  boolean openFileChooserCallBackAndroid5(WebView webView, ValueCallback<uri[]> filePathCallback,

FileChooserParams fileChooserParams);

 }

}

</uri[]></uri></uri[]></uri></uri></uri>

   

Activity代码



   

package com.dwb.renrendaipai.mywebview;

 

import android.app.Activity;

import android.content.ContentResolver;

import android.content.Context;

import android.content.Intent;

import android.database.Cursor;

import android.net.Uri;

import android.os.Build;

import android.os.Bundle;

import android.provider.MediaStore;

import android.support.v4.content.FileProvider;

import android.support.v7.app.AppCompatActivity;

import android.text.TextUtils;

import android.view.KeyEvent;

import android.view.View;

import android.webkit.ValueCallback;

import android.webkit.WebChromeClient;

import android.webkit.WebResourceError;

import android.webkit.WebResourceRequest;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.LinearLayout;

import android.widget.ProgressBar;

import android.widget.TextView;

 

import com.dwb.renrendaipai.R;

import com.dwb.renrendaipai.activity.MainActivity;

import com.dwb.renrendaipai.application.DSLApplication;

import com.dwb.renrendaipai.utils.DSLContants;

 

import java.io.File;

 

import butterknife.BindView;

import butterknife.ButterKnife;

import butterknife.OnClick;

 

import static com.umeng.socialize.utils.DeviceConfig.context;

 

/**零元下单 图片上传

 * Created by dwb on 2018/6/15.

 */

 

public class AoTuWebviewActivity extends AppCompatActivity{

 

 @BindView(R.id.toorbar_layout_main_back)

 LinearLayout toorbar_layout_main_back;

 @BindView(R.id.toorbar_txt_main_title)

 TextView toorbar_txt_main_title;

 @BindView(R.id.webview)

 WebView webview;

 @BindView(R.id.progressbar)

 ProgressBar progressbar;

 private Intent mintent;

 private WebSettings webSettings;

 private String url, title;

 ///图片上传///////

 private ValueCallback<uri[]> mUploadMsgForAndroid5;

 private ValueCallback<uri> mUploadMsg;

 private final static int FILECHOOSER_RESULTCODE = 1;

 

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  // TODO     

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程