在移动端web上做拍照上传照片的功能,当用后置摄像头拍好照片点击相机应用的√符号的时候,出现跳转到首页的异常现象。通过alert检测,没有进入到onchange绑定的方法中
出现问题的真机
(1)安卓端
小米5 系统版本:MIUI8.5 android7.0
微信版本:6.5.10
浏览器版本:小米自带浏览器
(2)苹果端
iphone6 系统版本:ios10.0.2
微信版本:6.5.12
浏览器版本:safari
代码:
(1)html(jsx)
<input type="file" name="updt1" accept={this.props.accept} onChange={this.fileChange}/>
this.props.accept = 'image/*'
(2)js(reactjs)
fileChange(event) {
// 照相或者选择图片的文件对象
let files = event.target.files;
// 图片数量取得
let size = files.length;
// 由于该组件只支持单张图片上传,所以图片数大于1的场合是不予处理的
if (!!files && size > 0) {
// 由于本页面的上传组件都是只上传一张,所以此处摒弃循环上传的模式
let result = {
code: 'error',
message: ''
}
以下省略
测试:
(1)通过用console.log和alert等方式确定出问题的地方,发现,用后置摄像头照完之后点击确定(√)之后是没有进入到fileChange方法中的,而且照片应用会黑屏1-2秒钟。
(2)之前开发的功能中也有拍照上传的,但是都没有出现这样的问题。
(3)安卓端使用UC浏览器没有出现异常现象。
(4)安卓端使用前置摄像头在微信端和小米自带浏览器端也会出现异常现象。
(5)通过相册选择之前拍照的照片不会出现这种异常现象。
问题:
(1)这种现象是什么引起的?
(2)根据现在的情况看,引起的原因有以下几个
1、可能是系统原因(之前的功能好用)
2、照相机功能的问题,因为相册是好用的,但是UC浏览器上是可以的
3、拍摄好的照片太大(1600万像素),导致超过微信端和小米自带浏览器规定最大可以载入图片大小。
4、代码有问题,但是时好时坏的出现异常又说明不了一定是代码的问题
以上就是我的问题和我猜想可能出错的原因。所以想问问大家遇到没这种情况,是否可以解决。
我也遇到这个问题了,请问您这边解决了吗