当前位置: 首页 > news >正文

uniapp选择android非图片文件的方案踩坑记录

      这个简单的问题我遇到下面6大坑,原始需求是选择app如android的excel然后读取到页面并上传表格数据json

先看看效果

uniapp 选择app excel文件读取

1.uniapp自带不支持

      uniapp选择图片和视频非常方便自带已经支持可以直接上传和读取

      但是选择word excel的时候就出现了问题,官方他不支持,不愧是一次编辑到处报错

     

2.插件方式兼容性版本不支持

官方自己不实现然后还"贴心"地告诉你插件,然后还绑定云空间,要么就是一些收费的,免费的适配都不行,这适配不行,我也知道原因安卓存储权限这一块,各种版本一直在改,现在好多目录根本拿不到绝对路径,推荐你用uri

3.插件能找到安卓file但是无法转化

使用下面的插件

安卓iOS 双端APP文件选择 - DCloud 插件市场

安卓路径和file无法转为uni file和blob,试了很久,兼容性也写的不确定

并不是file:// 路径 而是/mnt 强转又怕没有通用性,这个可能可以打通但是没有成功,有成功的可以分享一下,也尝试在android代码这边,转成数组传过来,结果不识别基本类型byte,也不知道怎么导包就放弃

4.Webview

没办法只能启动webview,但webview有两个问题,一是多了一层ui,二改为弹窗webview后,style又不行了,这肯定满足不了需求,顺着这条路,这时候想到,干脆把webview的html隐藏起来,能不能模拟点击调用文件,试了下,提示选文件是敏感操作,模拟点击不可以,那有没有办法,通过网页调起,绕过android适配,又不要webview呢(既要又要),这时候想到了最终方案RenderJs

5.RenderJs和RenderJs通信

使用方法如下,另外增加一个script

然后我们创建一个input直接点击

然后就无感调起了文件选择并返回了uniapp直接可用的file

这时候我本以为万事大吉结果官方后面还有一句话【但也有一个副作用是在造成了两层之间通信阻塞】

数据读取了,肯定还是要传给原来的层级显示使用,这时候发现传回去了赶紧找资料,于是我看到了这样的博客一搜还都是这样写的

uniapp 的 renderjs 使用详解,结合arcgis api_uniapp renderjs-CSDN博客

他这个例子是绑定点击事件拿到onwer,我和评论区想法一样,这样就又差了点意思,本来使用renderjs就是绕过ui的



 

后面终于找到了这个东西是可以直接拿的

this.$ownerInstance.callMethod(逻辑层方法名,想传的数据)然后调用一下 excel相关处理即可了,总算完成了这个简单的需求,难受

this.$ownerInstance.callMethod("receiveRenderData", {type: "success",errMsg: "解析成功",data: jsonObj})

相关文章:

uniapp选择android非图片文件的方案踩坑记录

这个简单的问题我遇到下面6大坑,原始需求是选择app如android的excel然后读取到页面并上传表格数据json 先看看效果 uniapp 选择app excel文件读取 1.uniapp自带不支持 uniapp选择图片和视频非常方便自带已经支持可以直接上传和读取 但是选择word excel的时候就出现…...

前端发开的性能优化 请求级:请求前(资源预加载和预读取)

预加载 预加载:是优化网页性能的重要技术,其目的就是在页面加载过程中先提前请求和获取相关的资源信息,减少用户的等待时间,提高用户的体验性。预加载的操作可以尝试去解决一些类似于减少首次内容渲染的时间,提升关键资…...

B01、类加载子系统-02

JVM架构图-英文版 中文版见下图: 1、概述类的加载器及类加载过程 1.1、类加载子系统的作用 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engi…...

用PHP搭建一个绘画API

【腾讯云AI绘画】用PHP搭建一个绘画API 大家好!今天我要给大家推荐的是如何用PHP搭建一个绘画API,让你的网站或应用瞬间拥有强大的绘画能力!无论你是想要让用户在网页上绘制自己的创意,还是想要实现自动绘画生成特效,这…...

西安人民检察院 | OLED翻页查询一体机

产品:55寸OLED柔性屏 项目时间:2023年12月 项目地点:西安 在2023年12月,西安人民检察院引入了OLED翻页查询一体机,为来访者提供了一种全新的信息查询方式。 这款一体机采用55寸OLED柔性屏,具有高清晰度、…...

superset利用mysql物化视图解决不同数据授权需要写好几次中文别名的问题

背景 在使用superset时,给不同的人授权不同的数据,需要不同的数据源,可视化字段希望是中文,所以导致不同的人需要都需要去改表的字段,因此引入视图,将视图中字段名称设置为中文 原表数据 select * from …...

输入输出流

1.输入输出流 输入/输出流类:iostream---------i input(输入) o output(输出) stream:流 iostream: istream类:输入流类-------------cin:输入流类的对象 ostream类…...

IOS:Safari无法播放MP4(H.264编码)

一、问题描述 MP4使用H.264编码通常具有良好的兼容性,因为H.264是一种广泛支持的视频编码标准。它可以在许多设备和平台上播放,包括电脑、移动设备和流媒体设备。 使用caniuse查询H.264兼容性,看似确实具有良好的兼容性: 然而…...

Pycharm恢复默认设置

window 系统 找到下方目录-->删除. 再重新打开Pycharm C:\Users\Administrator\.PyCharm2023.3 你的不一定和我名称一样 只要是.PyCharm*因为版本不同后缀可能不一样 mac 系统 请根据需要删除下方目录 # Configuration rm -rf ~/Library/Preferences/PyCharm* # Caches …...

简单计算器实现,包括两个数

正在加载中... 简单计算器实现,包括两个数 ❤ 厾罗 简单计算器实现,包括两个数 以下代码用于实现简单计算器实现,包括两个数基本的加减乘除运算: 实例(Python 3.0) # Filename : test.py # author by : www.dida100.com …...

竞赛保研 基于机器视觉的手势检测和识别算法

0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng…...

Android App从备案到上架全过程

不知道大家注意没有,最近几年来,新的移动App想要上架是会非常困难的,并且对于个人开发者和小企业几乎是难如登天,各种备案和审核。但是到底有多难,或许只有上架过的才会有所体会。 首先是目前各大应用市场陆续推出新的声明,各种备案截止日期到12月就要到最后期限责令整改…...

用邮件及时获取变更的公网IP--------python爬虫+打包成exe文件

参考获取PC机公网IP并发送至邮箱 零、找一个发送邮件的邮箱 本文用QQ邮箱为发送邮箱,网易等邮箱一般也有这个功能,代码也是通用的。 第一步:在设置中找到账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击获…...

c++学习:函数模板+实战

目录 函数模板 思考 如果两个参数的类型不一样可以下面这么写 如果有指定返回参数可以下面这么写 实战 找出三个数中最大的一个 函数模板 实际上就是建立一个通用函数,其函数返回值类型和形参类型不具体指定,用一个虚拟的类型来代表template 是一个…...

three.js gltf后处理颜色异常(伽马校正)

效果&#xff1a; 应用了伽马校正&#xff0c;好像效果不明显 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"><…...

面试经典150题(55-58)

leetcode 150道题 计划花两个月时候刷完&#xff0c;今天&#xff08;第二十四天&#xff09;完成了4道(55-58)150&#xff1a; 55.&#xff08;19. 删除链表的倒数第 N 个结点&#xff09;题目描述&#xff1a; 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff…...

如果一个n位正整数等于其各位数字的n次方之和

❤ 厾罗 如果一个n位正整数等于其各位数字的n次方之和 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 5^3 3^3 153。 1000以内的阿姆斯特朗数&#xff1a; 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 以下代码用于检测用户输…...

solidity显示以太坊美元价格

看过以太坊白皮书的都知道&#xff0c;以太坊比较比特币而言所提升的地方中&#xff0c;我认为最重要的一点就是能够访问外部的数据&#xff0c;这一点在赌博、金融领域应用会很广泛&#xff0c;但是区块链是一个确定的系统&#xff0c;包括里面的所有数值包括交易ID等都是确定…...

ChatGPT学习笔记——大模型基础理论体系

1、ChatGPT的背景与意义 近期,ChatGPT表现出了非常惊艳的语言理解、生成、知识推理能力, 它可以极好的理解用户意图,真正做到多轮沟通,并且回答内容完整、重点清晰、有概括、有条理。 ChatGPT 是继数据库和搜索引擎之后的全新一代的 “知识表示和调用方式”如下表所示。 …...

Termius for Mac/Win:一款功能强大的终端模拟器、SSH 和 SFTP 客户端软件

随着远程工作和云技术的普及&#xff0c;对于高效安全的远程访问和管理服务器变得至关重要。Termius&#xff0c;一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件&#xff0c;正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案&#xff0c;允许用户通过单一平…...

python如何读取被压缩的图像

读取压缩的图像数据&#xff1a; PackBits 压缩介绍&#xff1a; CCITT T.3 压缩介绍&#xff1a; 读取压缩的图像数据&#xff1a; 在做图像处理的时候&#xff0c;平时都是使用 函数io.imread() 或者是 函数cv2.imread( ) 函数来读取图像数据&#xff0c;很少用PIL.Image…...

华为OD机试 - 寻找最优的路测线路(Java JS Python C)

题目描述 评估一个网络的信号质量,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。 路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。 现给出 R 行 C 列的整数数组 Cov,每个单元格的数值 S 即为该栅格的信号质量(已归一化,无单…...

互联网演进历程:从“全球等待”到“全球智慧”的技术革新与商业变革

文章目录 一、导言二、World Wide Wait (全球等待)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 三、World Wide Web (万维网)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 四、World Wide Wisdom (全球智慧)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 五、…...

计算机组成原理——总线

总线特点 1.1. 分时&#xff1a;分时是指同一时刻只允许有一个部件向总线发送信息&#xff0c;若系统中有多个部件&#xff0c;则它们只能分时地向总线发生信息。 1.2. 共享&#xff1a;共享是指总线上可以挂接多个部件&#xff0c;各个部件之间互相交换的信息都可以通过这组线…...

2023.12.27 关于 Redis 数据类型 List 常用命令

目录 List 类型基本概念 List 类型特点 List 操作命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP RPOP LINDEX LINSERT LREM LTRIM LSET 阻塞版本的命令 阻塞版本 和 非阻塞版本的区别 BLPOP & BRPOP List 类型基本概念 Redis 中的列表&#xff08;list&am…...

【Web】vulhub-httpd apache解析漏洞复现(1)

目录 ①CVE-2017-15715 ②apache_parsing_vulnerability ①CVE-2017-15715 贴出源码&#xff1a; <?php if(isset($_FILES[file])) {$name basename($_POST[name]);$ext pathinfo($name,PATHINFO_EXTENSION);if(in_array($ext, [php, php3, php4, php5, phtml, pht]))…...

市场复盘总结 20240103

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: 方法一:指标选股 select * from dbo.ResultAll where 入选类型 like %指标选股% and 入选日期=20240103;方法二:趋势选股法 1、最低价持续3日上涨 2、均价…...

Java技术栈 —— Redis的雪崩、穿透与击穿

Java技术栈 —— Redis的雪崩、穿透与击穿 〇、实验的先导条件&#xff08;NginxJmeter&#xff09;一、Redis缓存雪崩、缓存穿透、缓存击穿1.1 雪崩1.2 穿透1.3 击穿 二、Redis应用场景——高并发2.1 单机部署的高并发问题与解决&#xff08;JVM级别锁&#xff09;2.2 集群部署…...

Scala知识点——App类

我们在代码中一般程序都是是通过main方法进入。但是在scala中提供了一个App类&#xff0c;通过继承可以实现不用显式的调用main方法就能运行。 App类中实现了main方法&#xff1a;...

(vue)增加行,对应行删除

(vue)增加行&#xff0c;对应行删除 效果&#xff1a; 代码&#xff1a; <div v-for"(ele,i) of algorithmList" :key"i"><el-form-item label"模型类型"><el-selectv-model"ele.algorithmId"placeholder"选择模…...

网站不用备案/网络营销概述ppt

展开全部在事件方法中再new个新的e68a84e8a2ad3231313335323631343130323136353331333431353361并更新按钮文本再显示&#xff0c;如果只是改变按钮的文本&#xff0c;把actionPerformed方法中的最后注释掉的两句留下&#xff0c;前面全删除就可以了。import java.awt.FlowLayo…...

网站服务包括什么/app推广拉新一手渠道

import numpy as npa np.array([1,2,3,4]) print(a) print(a.shape)a.shape [4, 1] print() print(a) print(a.shape) python - Difference between numpy.array shape (R, 1) and (R,) - Stack Overflow...

山西众邦建设集团网站/万能浏览器

一、快速访问 在企业环境中&#xff0c;用户数量比较多&#xff0c;文件数据的存放也是很无常的&#xff0c;不管我们是从本地、共享、还是云端&#xff0c;我们都会面临到一个问题&#xff0c;想要快读访问我们的文件&#xff0c;已经越来越困难了。这是因为我们的文件由于公司…...

wordpress怎么使用阿里图标/怎样做关键词排名优化

当“大数据”铺天盖地般向我们涌来&#xff0c;人们往往期冀能够对大数据能够有更进一步的了解&#xff0c;“数据挖掘”因此成为我们理解大数据概念绕不过去的“坎”。通过将大数据与数据挖掘进行对比分析&#xff0c;将有助于人们了解大数据的来龙去脉和未来真实走向。 数据…...

win7版本的wordpress/设计师培训班多少钱

字典由大括号和键值对组成&#xff0c;特点为无序&#xff0c;键唯一1.字典的创建#直接创建字典dic1{name:a,age:20}#通过dict创建字典&#xff0c;输出都为{name: a, age: 20}dic2dict(((name,a),(age,20)))print(dic2)dic3dict([[name,a],[age,20]])print(dic3)2.字典的增加与…...

做一个商城网站需要多少钱/sem竞价推广托管代运营公司

运维学习路线图 一、 初级入门&#xff1a; Linux基础知识、基本命令&#xff08;起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令&#xff09; Linux用户及权限基础 Linux系统进程管理进阶 linux高效文本、文件处理命令&#xff08;vim、grep、sed、awk、find等命令…...