H5页面遇到的BUG

最近写了个H5的小页面,遇到一些兼容问题,记录下(主要针对QQ和微信 ),


一、.调 用手机相机或相册功能:

<input type="file" name="imgfile" id="camera">

一开始是这样写的:

<input type="file" name="imgfile" accept="image/*" capture="camera" id="camera">

经过测试发现这种写法并不能同时兼容安卓和IOS手机,具体表现为:

安卓手机在QQ和微信浏览器都可以正常使用,浏览器是直接调相机,不能选择相册(因需求对浏览器没要求,暂不做处理)

IOS手机最开始qq和微信也是可以的,后来升级了个10.3.1的版本就不能选择相册了,估计苹果对相册权限做了处理什么的吧,具体也不清楚……反正结果就是相册不能选了


从网上找了相关资料,换了另一种写法试了试:

<input type="file" accept="image/*; capture=camera" name="imgfile" id="camera">
效果:

安卓不能调相机了,直接打开图片选择面板……

IOS可以正常选择相机或相册


综合考虑,为了实现功只能想到这样处理代码(JS控制):

var u = navigator.userAgent.toLowerCase();
var isApple = /(iphone|ipad|ipod|ios)/i.test(u);
var isAndroid = /android/i.test(u);
if(isApple){ //apple终端 $('#camera').attr('accept','image/*;capture=camera');}else if(isAndroid){ //安卓终端 $('#camera').attr('accept','image/*').attr('capture','camera');}


二、刷新页面在安卓微信浏览器中不起作用的问题

history.go(0);

现象:

IOS  QQ和微信正常使用

安卓客户端 QQ李没问题,微信上无反应

原因:

缓存问题,安卓上面微信里执行刷新操作时,页面无改动的情况下是从缓存中加载文档,并没有真的执行刷新,所以点击不会刷新页面

解决办法:

分情况处理,区分安卓和IOS 区分微信浏览器, 使用window.location.href

function isWeiXin(){
    var ua = window.navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i) == 'micromessenger'){
        return true;
    }else{
        return false;
    }
}
if(isApple){
    //apple终端
    $('.errorFresh').on('click',function () {
        history.go(0); //刷新
    });
}else if(isAndroid){
    //安卓终端
    if(isWeiXin()){
        $('.errorFresh').on('click',function () {
            window.location.href='url'; //跳转
        });
    }
}



以上,并不是最好的方法,至少能解决问题。
希望以后能发现更好的办法。


——每一天都是进步






### 回答1: 如果您在使用H5页面时遇到了白屏的问题,可能有以下几种可能的原因: 1. 网络连接问题:请确保您的网络连接正常,尝试刷新页面或连接其他网络。 2. HTML、CSS或JavaScript代码错误:请检查您的代码是否存在语法错误或逻辑错误,尝试通过调试工具查找问题所在。 3. 浏览器兼容性问题:不同浏览器对H5页面的支持程度可能不同,尝试使用其他浏览器查看页面是否正常显示。 4. 缓存问题:尝试清除浏览器缓存,重新加载页面。 希望这些提示能够帮助您解决问题。 ### 回答2: H5页面扫码偶尔出现白屏的原因可能有多种。首先,可能是由于网络问题导致的加载延迟。当用户扫码后,页面需要从服务器加载相关数据和资源,在网络不稳定或网络延迟较高的情况下,页面加载可能受到影响,出现白屏现象。 其次,可能是由于代码问题造成的白屏。H5页面可能存在一些复杂的逻辑和功能,如果代码编写不规范或者存在bug,可能会导致页面加载出错,进而出现白屏。例如,一些关键的数据请求错误、资源加载错误或者脚本执行错误等都可能引发白屏现象。 另外,浏览器兼容性问题也可能是白屏出现的原因之一。不同的浏览器对H5页面的支持程度和解析方式有所差异,如果页面代码在某些浏览器上存在兼容性问题,可能会导致白屏现象。 解决这个问题的方法可以有几种。首先,要确保网络连接稳定,尽量优化页面加载速度,可以使用图片懒加载、资源压缩等技术手段来改善页面加载性能。其次,需要对页面代码进行仔细检查和调试,修复可能存在的bug,并优化代码逻辑。最后,要进行充分的兼容性测试,确保页面在不同浏览器上都能正常加载和显示。 总之,H5页面扫码偶尔出现白屏是一个比较常见的问题,需要综合考虑网络因素、代码问题和浏览器兼容性等多个方面,进行逐一排查和解决,以提升用户的使用体验。 ### 回答3: H5页面扫码偶尔会出现白屏的情况可能是由于以下几个原因引起的: 1. 网络问题:扫码打开H5页面需要通过网络下载相关资源,如果网络不稳定或者速度较慢,可能会导致页面资源无法加载完成,从而出现白屏现象。解决方法可以是检查网络连接是否正常,或者尝试使用其他网络环境来打开页面。 2. 资源加载问题:H5页面通常会加载大量的图片、CSS和JavaScript文件,如果其中某个资源加载失败或出错,可能会导致页面无法正常显示。可以通过检查控制台的错误信息来确定具体是哪个资源加载出了问题,然后修复该资源或在代码中进行相应的调整。 3. 兼容性问题:不同的扫码工具或浏览器对H5页面的支持程度可能存在差异,某些特定的功能、样式或脚本在某些扫码工具或浏览器下可能无法正确显示或执行,从而导致白屏问题。解决方法可以是检查页面使用的特性是否符合各个扫码工具或浏览器的兼容性要求,或者尝试针对不同的扫码工具或浏览器进行适配和调试。 4. 程序逻辑错误:H5页面中可能存在程序逻辑方面的错误,比如代码错误、错误的逻辑判断或循环等,这些错误可能会导致页面无法正常显示或加载完成,出现白屏问题。可以通过调试工具或日志信息来查找和修复这些错误。 综上所述,H5页面扫码偶尔出现白屏问题可能是由于网络问题、资源加载问题、兼容性问题或程序逻辑错误等多种原因造成的,需要逐一排查并解决具体问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值