返回顶部
首页 > 资讯 > 精选 >Android中怎么利用WebView上传文件
  • 804
分享到

Android中怎么利用WebView上传文件

androidwebview 2023-05-30 20:05:51 804人浏览 独家记忆
摘要

今天就跟大家聊聊有关Android中怎么利用WEBView上传文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。接收WebView打开文件选择器的通知收到通知后,打开文件选择器等待用

今天就跟大家聊聊有关Android中怎么利用WEBView上传文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

接收WebView打开文件选择器的通知

收到通知后,打开文件选择器等待用户选择需要上传的文件

在onActivityResult中得到用户选择的文件的Uri

然后把Uri传递给HTML5

这样就完成了一次H5选择文件的过程,下面我把代码贴出来自习看一下

首先,WebView必须要支持js交互,所以要打开JS交互

mWebView.getSettings().setjavascriptEnabled(true);

当H5在调用上传文件的api的时候,WebView会回调 openFileChooser和onShowFileChooser 方法来通知我们,我们这个时候要做的就是重写这个方法

需要注意的是这个方法在不同的Api上会回调不同行参方法

mWebView.setWebChromeClient(new WebChromeClient() {   @Override   public void onProgressChanged(WebView view, int newProgress) {    if (newProgress == 100) {     mBar.setVisibility(View.GoNE);    } else {     mBar.setVisibility(View.VISIBLE);     mBar.setProgress(newProgress);    }    super.onProgressChanged(view, newProgress);   }   //For Android API < 11 (3.0 OS)   public void openFileChooser(ValueCallback<Uri> valueCallback) {    uploadMessage = valueCallback;    openImageChooserActivity();   }   //For Android API >= 11 (3.0 OS)   public void openFileChooser(ValueCallback<Uri> valueCallback, String acceptType, String capture) {    uploadMessage = valueCallback;    openImageChooserActivity();   }   //For Android API >= 21 (5.0 OS)   @Override   public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {    uploadMessageAboveL = filePathCallback;    openImageChooserActivity();    return true;   }  });

我们在openFileChooser方法中先保存了一下ValueCallback的回调对象,这个对象最后用来通知H5文件地址,我们之后在调用openFileChooser方法来打开文件选择器

private void openImageChooserActivity() {  Intent i = new Intent(Intent.ACTioN_GET_CONTENT);  i.addCategory(Intent.CATEGORY_OPENABLE);  i.setType("image/*");  startActivityForResult(Intent.createChooser(i, "Image Chooser"), FILE_CHOOSER_RESULT_CODE); }

当用户选择完文件后,会调用onActivityResult方法,我们重写并等待回调

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {  super.onActivityResult(requestCode, resultCode, data);  if (requestCode == FILE_CHOOSER_RESULT_CODE) {   if (null == uploadMessage && null == uploadMessageAboveL) return;   Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();   if (uploadMessageAboveL != null) {    onActivityResultAboveL(requestCode, resultCode, data);   } else if (uploadMessage != null) {    uploadMessage.onReceiveValue(result);    uploadMessage = null;   }  } } @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void onActivityResultAboveL(int requestCode, int resultCode, Intent intent) {  if (requestCode != FILE_CHOOSER_RESULT_CODE || uploadMessageAboveL == null)   return;  Uri[] results = null;  if (resultCode == Activity.RESULT_OK) {   if (intent != null) {    String dataString = intent.getDataString();    ClipData clipData = intent.getClipData();    if (clipData != null) {     results = new Uri[clipData.getItemCount()];     for (int i = 0; i < clipData.getItemCount(); i++) {      ClipData.Item item = clipData.getItemAt(i);      results[i] = item.getUri();     }    }    if (dataString != null)     results = new Uri[]{Uri.parse(dataString)};   }  }  uploadMessageAboveL.onReceiveValue(results);  uploadMessageAboveL = null; }

看完上述内容,你们对Android中怎么利用WebView上传文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: Android中怎么利用WebView上传文件

本文链接: https://lsjlt.com/news/220976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android中怎么利用WebView上传文件
    今天就跟大家聊聊有关Android中怎么利用WebView上传文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。接收WebView打开文件选择器的通知收到通知后,打开文件选择器等待用...
    99+
    2023-05-30
    android webview
  • 怎么在Android中利用Retrofit 2.X 上传文件
    怎么在Android中利用Retrofit 2.X 上传文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Body方式:1、Retrofit接口RetrofitInterf...
    99+
    2023-05-30
    retrofit android
  • Android WebView 上传文件支持全解析
    默认情况下情况下,使用Android的WebView是不能够支持上传文件的。而这个,也是在我们的前端工程师告知之后才了解的。因为Android的每个版本WebView的实现有差...
    99+
    2022-06-06
    上传文件 webview Android
  • Android中怎么利用OkHttp上传文件到服务器
    Android中怎么利用OkHttp上传文件到服务器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、编写服务器端在上一讲服务器下新建UploadFileServlet,代...
    99+
    2023-05-31
    okhttp android 服务器
  • Android项目中如何在webview页面中上传文件
    本篇文章为大家展示了Android项目中如何在webview页面中上传文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android webview在默认情况下是不支持网页中的文件上传功能的;如果...
    99+
    2023-05-31
    webview android roi
  • Android WebView那些坑之上传文件示例
    最近公司项目需要在WebView上调用手机系统相册来上传图片,开发过程中发现在很多机器上无法正常唤起系统相册来选择图片。 解决问题之前我们先来说说WebView上传文件的逻辑:...
    99+
    2022-06-06
    示例 上传文件 webview Android
  • Android 解决WebView无法上传文件的问题
    Android 解决WebView无法上传文件的问题Android原生的WebView并不支持上传文件,需要我们自己实现相应的方法。于是我把工作中的相关代码记录下来。下次直接拿来用就行了。一点一滴都是经验。 1。需要定义三个变量 priva...
    99+
    2023-05-30
    android webview roi
  • 怎么利用​PHP中的 $_FILES上传文件
    小编给大家分享一下怎么利用PHP中的 $_FILES上传文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP 中的$_FILESPHP全局$_FILES包含文...
    99+
    2023-06-14
  • 怎么在ajax中利用formdata流上传文件
    今天就跟大家聊聊有关怎么在ajax中利用formdata流上传文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。//html如下//form1<form class=...
    99+
    2023-06-08
  • Android中的webview支持页面中的文件上传实例代码
    Android webview在默认情况下是不支持网页中的文件上传功能的; 如果在网页中有<input type="file" />,在android webvie...
    99+
    2022-06-06
    文件上传 webview Android
  • 怎么在FormData中利用Ajax请求上传文件
    这篇文章将为大家详细讲解有关怎么在FormData中利用Ajax请求上传文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Servlet3.0开始提供了一系列的注解来配置Servlet、Fi...
    99+
    2023-06-08
  • vue 中怎么利用webuploader 实现文件上传功能
    今天就跟大家聊聊有关vue 中怎么利用webuploader 实现文件上传功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、封装组件引入百度提供...
    99+
    2024-04-02
  • Nodejs中怎么利用express和multer实现文件上传
    这期内容当中小编将会给大家带来有关Nodejs中怎么利用express和multer实现文件上传,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。非常简单,一行命令。npm&...
    99+
    2024-04-02
  • 怎么在android中利用Webview实现截屏
    怎么在android中利用Webview实现截屏?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。第一种方式通过调用webview.capturePicture()...
    99+
    2023-05-31
    android webview roi
  • Android应用中怎么将文件上传到服务器
    这篇文章将为大家详细讲解有关Android应用中怎么将文件上传到服务器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1)、新建一个Android项目命名为androidUpload,目录结构...
    99+
    2023-05-31
    android roi
  • 怎么利用HTML5实现不刷新文件上传
    本篇内容主要讲解“怎么利用HTML5实现不刷新文件上传”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用HTML5实现不刷新文件上传”吧!之前朋友说的不刷新...
    99+
    2024-04-02
  • Python利用fastapi实现上传文件
    目录使用File实现文件上传使用UploadFile实现文件上传UploadFile的属性设置上传文件是可选的上传多个文件知识点补充使用File实现文件上传 使用Form表单上传文件...
    99+
    2024-04-02
  • android 中 webview 怎么用 localStorage
    我在 android里面 使用html5的 localStorage 为什么存不进去也读不出来呀? 网上搜了好多都没效果 mainWebView = (WebVi...
    99+
    2022-06-06
    localstorage webview Android
  • nodejs中怎么利用express实现一个文件上传功能
    这期内容当中小编将会给大家带来有关nodejs中怎么利用express实现一个文件上传功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。步骤:(1)使用express创建...
    99+
    2024-04-02
  • android文件上传示例分享(android图片上传)
    主要思路是调用系统文件管理器或者其他媒体采集资源来获取要上传的文件,然后将文件的上传进度实时展示到进度条中。 主Activity 代码如下:package com.guoto...
    99+
    2022-06-06
    示例 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作