a.md 1.3 KB

  • 原因找到了,是因为手机内存不足,打开相机会把微信网页进程杀掉
  • 有可能是拍照内存占用过大,引起页面被系统回收
  • 这个问题其实是原生input的锅,直接在浏览器里或者微信环境打开,有的IOS也有同样问题, 把IOS所有的后台进程都杀掉,大概率可以正常拍照,原生input type = file,打开相机和选择照片的时候, 在IOS上消耗的内存非常多,内存不足的时候就会自动释放从而导致刷新

  • 在iPhone13等设备上,若使用input标签的capture属性进行拍照,因为iOS系统调用相机时资源占用较大, 而默认设置为Web页面在后台运行时最多占用60MB的内存,当内存使用量超过该限制时,iOS系统会强制终止页面, 产生闪退现象。避免这种问题的方法之一是通过JS在调用相机前先进行内存检测和释放, 例如使用window.onpagehide事件监听页面跳转或页面隐藏时执行内存释放操作, 以确保内存占用不会超过上述限制。同时,也可以考虑使用更低效率的拍照方式, 例如上传图片或使用拍摄后压缩等方式,以减少内存占用

[](https://developers.weixin.qq.com/community/develop/doc/0008465a5c83282c37c67630b56000)。