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

钉钉内嵌H5遇到的一些问题

基于钉钉内核开发的政务云APP,在里面开发H5应用时会遇到一些莫名其妙的BUG

标题1、React打包H5时,安卓手机白屏的问题。

1、钉钉安卓使用 UC3.0 内核,版本比较低
2、React + Vite + TS 打包的H5应用的安卓端无法正常使用
3、添加 build 配置项

import { defineConfig } from 'vite'
export default defineConfig({plugins: [react(),],// ... otherbuild: {target: ['chrome52'],cssTarget: ["chrome52"]},// ... other
})

标题2、ios上传文件上传失败的问题。

1、首先我们需要一个 FormData 对象
2、向 FormData 对象 append 我们需要的数据
3、打印 FormData 对象,比较安卓、H5、ios 之间的差异
4、比较出差异,改造 ios 的 FormData 对象
tips:首先保证谷歌浏览器下 H5 能够正常上传。

	const handleUpload = (file: File) => {const formData = new FormData()formData.append('file', file) // 放入 file 文件,第三个参数选传文件名。”file“ 键名因接口而已console.log('formData', formData)console.log('entries', formData.entries)console.log('realFormData', formData.realFormData)const realFormData = formData.realFormData;// 如果存在 realFormData,将传 realFormData 对象,此时需要放入 file 文件// realFormData 是钉钉内核应用在 ios H5中特有的对象,此时需要改造此对象。if(realFormData) {realFormData.append('file', file)}// 返回 Promise 对象return new Promise<ImageUploadItem>((r,j) => {fileUploadApi(realFormData || formData // 传入的 FormData 对象,传入形式因接口而异).then(res => {r({url: res.data.url})}).catch(err => {j('err')throw new Error('Fail to upload')})})}

相关文章:

  • html中使用JQ自定义锚点偏移量
  • 价钱统计
  • 数字摄影测量
  • 换服还是掀桌?哪条才是程序员的出路?
  • C++ [继承]
  • 【delphi】中 TNetHTTPClient 注意事项
  • springboot(ssm 高校教师电子名片系统 Java(codeLW)
  • 【ARM Trace32(劳特巴赫) 使用介绍 2 - Veloce 环境中使用trace32 连接 Cortex-M33】
  • C++ http协议POST body raw 字段向服务器发送请求
  • Linux Vim批量注释和自定义注释
  • flink的CoProcessFunction使用示例
  • 临界资源,临界区,通信的干扰问题(互斥),信号量(本质,上下文切换问题,原子性,自身的安全性,操作)
  • AI搞钱——工具篇之视频、音频转文字
  • FreeRTOS学习笔记——SysTick中断
  • 什么是API接口测试?这可能是全网最全的教程了!
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CEF与代理
  • input实现文字超出省略号功能
  • java 多线程基础, 我觉得还是有必要看看的
  • Java知识点总结(JavaIO-打印流)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • nodejs调试方法
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Selenium实战教程系列(二)---元素定位
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 聊聊directory traversal attack
  • 系统认识JavaScript正则表达式
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (26)4.7 字符函数和字符串函数
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (利用IDEA+Maven)定制属于自己的jar包
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (已解决)什么是vue导航守卫
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .describe() python_Python-Win32com-Excel
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 调用php,php 调用.net com组件 --
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • .sys文件乱码_python vscode输出乱码
  • @vue/cli 3.x+引入jQuery
  • [autojs]autojs开关按钮的简单使用