h5 苹果12 拍照上传图片后导致自动刷新页面,表单数据丢失定位分析

上线了一个小功能,里面有个拍照上传的功能,然后基本上所有人都没问题,而且试了各种androidd都没问题,就一个同事的苹果12有问题,而且可以100%复现,一直各种排查,网上参考了各种解决方案

1、Vue.js实战——微信拍照时页面会被刷新的BUG定位_9_在编攻城狮的博客-CSDN博客_微信小程序van-uploader拍照会刷新页面

2、在微信移动端input file拍照或从相册选择照片后会自动刷新页面退回到一开始网站进入的页面 - rachelch - 博客园

3、微信内置浏览器input[file]选择图片后刷新_gyldzh的博客-CSDN博客

4、https://www.jianshu.com/p/4a4aae39bd4a

最后定位出来 就是手机内存的不足,一看她打开了最少10以上的进程,当把其余多余进程都关闭后,问题解决了,从以上分析,应该还是系统底层的问题,但是最起码找到了问题出现再来哪里,通过什么方式来解决,mark一下

最简单的复现页面(苹果手机打开10个以上app,把内存占用搞到90%以上)

<html>

<head>
<meta charset="UTF-8"></meta>
<meta
	content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;"
	name="viewport"></meta>
</head>
<body>
<input type="file" value="上传图片"  accept="image/*"/>

</body>
</html>

正常拍照之后

异常刷新之后 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
使用uniapp结合uView进行拍照上传图片的过程中,可以通过以下步骤实现: 1. 在模板中设置一个按钮,用于触发拍照事件: ``` <view class="u-upload" @click="takePhoto"> <u-icon class="u-icon-upload" name="camerafill"></u-icon> </view> ``` 2. 在methods中实现takePhoto方法,用于触发拍照事件: ``` takePhoto() { const camera = uni.chooseImage({ count: 1, // 一次只能拍摄一张照片 sourceType: ['camera'], // 指定拍照来源为相机 success: (res) => { // 上传图片 this.uploadImage(res.tempFilePaths[0]); }, fail: (err) => { uni.showToast({ icon: 'none', title: '拍照失败' }); console.error(err); } }); }, ``` 3. 在uploadImage方法中,使用uni.uploadFile方法上传图片,并在success回调函数中获取上传后的图片地址: ``` uploadImage(filePath) { const upload = uni.uploadFile({ url: 'your-upload-api', // 上传图片的接口地址 filePath: filePath, name: 'file', // 上传图片的参数名 success: (res) => { const imageUrl = JSON.parse(res.data).data.url; // 解析上传后的图片地址 // 将图片地址赋值给data中的imageUrl变量 this.imageUrl = imageUrl; }, fail: (err) => { uni.showToast({ icon: 'none', title: '上传失败' }); console.error(err); } }); }, ``` 4. 最后将生成的图片地址赋值给data中的imageUrl变量即可: ``` data() { return { imageUrl: '' }; } ``` 以上步骤适用于在H5使用uniapp结合uView进行拍照上传图片,希望能够帮助到你。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值