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

news/2024/7/24 2:26:15 标签: 钉钉, 前端, javascript

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

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

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

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

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

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

javascript">	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')
			})
		})
	}

http://www.niftyadmin.cn/n/5155180.html

相关文章

[科研图像处理]用matlab平替image-j,有点麻烦,但很灵活!

做材料与生物相关方向的同学应该对image-j并不陌生&#xff0c;前几天有个师兄拜托我用image-j分析一些图片&#xff0c;但使用过后发现我由于不了解image-j的工作流程而对结果并不确信&#xff0c;而且image-j的功能无法拓展&#xff0c;对有些图片的处理效果并不好&#xff0…

error #20 identifier xxxxx is undefined 结构体未定义

…\User\inc\main.h(35): error: #20: identifier “ipMsg_Def” is undefined //ipMsg.h #ifndef __IPMSG_H #define __IPMSG_H#include <stdint.h> #include "includes.h" //Line 1typedef struct _IP_Msg {uint8_t lip[4]; //本地IP …

PHP获取域名地址,$_SERVER[]用法

一、PHP获取域名地址 $host $_SERVER[HTTP_HOST];二、PHP获取域名后面的所有字符 $host $_SERVER[REQUEST_URI];//https://www.baidu.com/md/?articleId134157878//输出 /md/?articleId134157878三、PHP获取服务器的IP $serverIP $_SERVER[SERVER_ADDR]; echo "服务…

初阶JavaEE(14)表白墙程序

接上次博客&#xff1a;初阶JavaEE&#xff08;13&#xff09;&#xff08;安装、配置&#xff1a;Smart Tomcat&#xff1b;访问出错怎么办&#xff1f;Servlet初识、调试、运行&#xff1b;HttpServlet&#xff1a;HttpServlet&#xff1b;HttpServletResponse&#xff09;-C…

Spring事务最佳应用指南(包含:事务传播类型、事务失效场景、使用建议、事务源码分析)

前言 本文主要介绍的是在Spring框架中有关事务的应用方式&#xff0c;以及一些生产中常见的与事务相关的问题、使用建议等。同时&#xff0c;为了让读者能够更容易理解&#xff0c;本文在讲解过程中也会通过源码以及案例等方式进行辅助说明&#xff0c;通过阅读本文不但能够解…

setState到底是同步还是异步

18 之前只要是进入调度流程就是异步,没有就是同步 异步处理就是批量处理 官方的合成事件都会进入调度流程&#xff08;异步&#xff09; setTimeout,setInterval等原生事件都不会进入调度流程&#xff08;同步&#xff09; 同步造成性能的浪费&#xff0c;调用三次setState后…

知行之桥EDI系统2023第四季度版本更新介绍

知行之桥 EDI 系统第四季度的更新版本现已发布&#xff0c;本文将介绍版本更新内容&#xff0c;确保用户拥有最佳的使用体验。 知行之桥EDI系统2023第四季度版本更新介绍 下载安装升级 知行之桥EDI系统支持 Windows 和 Java 两个版本。Java 版本支持跨平台&#xff0c;从8691版…

烟台海森大数据——数据驱动材料研发,本土化为安全护航

随着大数据时代的来临&#xff0c;人们的生产和生活&#xff0c;各方面都在发生着深刻的变化。作为与国计民生息息相关的材料行业&#xff0c;也在数据时代迎来了新的机遇与挑战。 新材料是我国重点推进的战略性新兴产业之一&#xff0c;对于支撑整个战略性新兴产业发展&#…