首页 > 编程语言 >直播平台搭建源码,调用系统相册实现多选图片上传

直播平台搭建源码,调用系统相册实现多选图片上传

时间:2023-06-06 14:26:13浏览次数:48  
标签:多选 相册 uploadMsg 源码 mValueCallbackUri Intent Android null intent

直播平台搭建源码,调用系统相册实现多选图片上传

1、首先需要给webview的WebChromeClient设置以下代码,才可以实现h5与Android交互选取图片

 


private ValueCallback<Uri> mValueCallbackUri;
private ValueCallback<Uri[]> mValueCallbackUris;
this.setWebChromeClient(new WebChromeClient() {
            // For Android < 3.0
            public void openFileChooser(ValueCallback<Uri> uploadMsg) {
                if (mValueCallbackUri != null) {
                    mValueCallbackUri.onReceiveValue(null);
                    mValueCallbackUri = null;
                }
                mValueCallbackUri = uploadMsg;
                showOptions();
            }
            //For Android 3.0 - 4.0
            public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
                if (mValueCallbackUri != null) {
                    mValueCallbackUri.onReceiveValue(null);
                    mValueCallbackUri = null;
                }
                mValueCallbackUri = uploadMsg;
                showOptions();
            }
            // For Android > 4.1.1
            public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
                if (mValueCallbackUri != null) {
                    mValueCallbackUri.onReceiveValue(null);
                    mValueCallbackUri = null;
                }
                mValueCallbackUri = uploadMsg;
                showOptions();
            }
            // For Android > 5.0支持多张上传
            @Override
            public boolean onShowFileChooser(WebView webView,
                                             ValueCallback<Uri[]> uploadMsg,
                                             FileChooserParams fileChooserParams) {
                if (mValueCallbackUris != null) {
                    mValueCallbackUris.onReceiveValue(null);
                    mValueCallbackUris = null;
                }
                mValueCallbackUris = uploadMsg;
                showOptions();
                return true;
            }
        });
 

2、点击h5页面设置的<input type="file" name="pic" accept="image/*">,就会调用到Android webview设置的openFileChooser或者onShowFileChooser

3、然后在openFileChooser或者onShowFileChooser中调用打开相册的代码即可

1)方法一:打开相册,并且只支持选择单张图片

 


Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);// 调用
activity.startActivityForResult(intent, TYPE_GALLERY);
 

 

或者

 


   Intent intent = new Intent();
   intent.setType("image/*");
   intent.setAction(Intent.ACTION_GET_CONTENT);
   activity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), TYPE_GALLERY);
 

 

2)方法二:打开相册,并且支持选择多张图片(Android 5.0+才支持),只需在上述代码基础上增加以下代码即可

 


intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);

 

 以上就是直播平台搭建源码,调用系统相册实现多选图片上传, 更多内容欢迎关注之后的文章

 

标签:多选,相册,uploadMsg,源码,mValueCallbackUri,Intent,Android,null,intent
From: https://www.cnblogs.com/yunbaomengnan/p/17460403.html

相关文章

  • 统信UOS系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12.8
    前言  上一篇,是使用Qt提供的安装包安装的,有些场景需要使用到自己编译的Qt,所以本篇如何在统信UOS系统上编译Qt5.12.8源码。<br>统信UOS系统版本  系统版本:  Qt源码下载  参考博文《获取下载Qt安装包,Qt源码全国网址备忘录(不用注册Qt账户,即可下载各版本Qt安装包和Qt源......
  • xades4j 苦苦寻找的是啥 (源码 == 找到了测试用例 == 找到了用法)
    <dependency><groupId>com.googlecode.xades4j</groupId><artifactId>xades4j</artifactId><version>1.3.2</version></dependency>https://github.com/luisgoncalves/xades4j源码和junit(大量的测试用例,告诉我们什么是xades......
  • Storm-源码分析-Topology Submit-Client
    1StormClient最开始使用storm命令来启动topology,如下stormjarstorm-starter-0.0.1-SNAPSHOT-standalone.jarstorm.starter.WordCountTopology这个storm命令是用python实现的,看看其中的jar函数,很简单,调用exec_storm_class,其中jvmtype=”-client” 而exec_storm_clas......
  • iTOP-3588开发板Android12源码定制开发uboot开发
    uboot开发-Uboot源码是v2017.09版本。目前在该平台上已经支持RK所有主流在售芯片。支持的功能主要有:支持RKAndroid固件启动;支持AndroidAOSP固件启动;支持LinuxDistro固件启动;支持Rockchipminiloader和SPL/TPL两种Pre-loader引导;支持LVDS、EDP、MIP......
  • Tinyhttpd:源码分析【3】
    一、问题引入通过Tinyhttpd:运行测试【1】和抓包分析【2】,基本完成了对程序的功能测试和通信原理。此时可以进一步对源码进行分析,本文不考虑代码一行一行的分析,仅对关键部分代码解析。二、解决过程2-1main()函数主函数主要创建http的监听套接字,等待客户端的连接。一旦有新......
  • Github--源码管理工具介绍
    源代码管理工具在实际软件开发中具有极其重要的作用。相比于相互拷贝源码,使用源代码管理工具更方便开发成员之间进行开发,且使用源码管理工具具有更高的保密性。在此,将对目前相对流行的源代码管理工具--Github进行简要介绍。Github作为源码管理工具,主要由两部分组成:本地数......
  • win10,vs2015深度学习目标检测YOLOV5+deepsort C++多目标跟踪代码实现,源码注释,拿来即
    int8,FP16等选择,而且拿来即用,自己再win10安装上驱动可以立即使用,不用在自己配置,支持答疑。自己辛苦整理的,求大佬打赏一顿饭钱。苦苦苦、平时比较比忙,自己后期会继续发布真实场景项目;欢迎下载。优点:1、架构清晰,yolov5和sort是分开单独写的,可以随意拆解拼接,都是对外接口。2、支持答疑......
  • 1.2 Java基础 数据类型(Integer源码解析)
    Java数据类型和Integer源码解析1.2.1基本数据类型1.2.2什么是拆装箱1.2.3拆装箱是如何实现的1.2.4Integer继承关系1.2.5Integer源码解析1.2.1基本数据类型       如大家所知,Java是一门面向对象的语言,但是java并非完全面向对象,Java中的数据类型分为了       ......
  • Servlet源码
    顶级接口:Servlet:packagejavax.servlet;importjava.io.IOException;publicinterfaceServlet{publicvoidinit(ServletConfigconfig)throwsServletException;publicServletConfiggetServletConfig();publicvoidser......
  • 视频直播源码,动态合并element-ui el-table列和行
    视频直播源码,动态合并element-uiel-table列和行HTML: <template>  <div>    <el-table     :data="tableData"     show-summary     :span-method="arraySpanMethod"    style="width:100%">      <......