2019-08-05 16:20:27 2347浏览
参与过原生APP和H5混合开发的项目的小伙伴在项目过程中应该都会遇到不少的问题,本篇文章扣丁学堂HTML5培训小编给读者们分享一下HTML5与APP混合开发遇到的问题有哪些,感兴趣的小伙伴就随小编来了解一下吧。
问题1:页面滚动条问题
问题描述
web页面在PC浏览器上浏览时有滚动条;但是,在移动端浏览器打开时,没有滚动条
解决方法
将页面的最外层(我一般在写页面时,会在body标签内写一个大容器,用于存放页面的内容)设置overflow:auto/scroll;并且不能设置height属性的值(height:100%也不行)
例子
问题2:touchstart 和 touchend 事件的使用
问题描述
引入touch.js文件,使用touchstart和touchend事件实现交互效果时,在部分手机出现事件触发失效的问题[例如:低版本的荣耀手机]
解决方法
方法1:"removeEventListener"和"addEventListener"一起使用
方法2:添加e.preventDefault(); 阻止部分手机默认跳转
法3:Jquery的on实现事件绑定
说明:法1与法2都是原生JS使用addEventListener实现事件监听;并且dom元素使用touchstart和touchend事件时,需要结合事件绑定或者事件监听一起使用,否则js部分会抛出异常
代码
问题3:长按闪退的问题
情景还原
有一个XXX列表页,长按列表页的列表项时(触摸到文字),在低版本手机中会出现闪退的情况
解决方法
js部分:在事件触发时添加e.preventDefault();,用于阻止默认行为
css部分:添加禁止文本文本复制的代码
代码
<body>
<div style="overflow:scroll/auto;">
//网页内容
</div>
</body>
//法一:
document.getElementById('list5').addEventListener('touchstart',callback, false);
document.getElementById('list5').removeEventListener('touchstart',callback, false);
document.getElementById('list5').addEventListener('touchend',callback, false);
document.getElementById('list5').removeEventListener('touchend',callback, false);
//法二:
document.getElementById('list5').addEventListener('touchstart',function(e){
e.preventDefault();
}, false);
document.getElementById('list5').addEventListener('touchend',function(e){
e.preventDefault();
}, false);
//js部分:
e.preventDefault();
//css部分:
-webkit-touch-callout: none; //解决闪退
//禁止复制
-moz-user-select: none;
-khtml-user-select: none;
user-select: none;
问题4:原生js的事件监听和jquery的事件绑定在ios中失效
问题描述
使用事件监听或事件绑定时,由于父元素选择body或document元素,导致在ios中事件触发无效
解决方法
不使用body和document元素作为父级元素
以上就是扣丁学堂HTML5在线学习小编给大家分享的HTML5与APP混合开发遇到的问题有哪些,希望对小伙伴们有所帮助,想要了解更多内容的小伙伴可以登录扣丁学堂官网咨询。
想要学好HTML5开发小编给大家推荐口碑良好的扣丁学堂,扣丁学堂有专业老师制定的HTML5学习路线图辅助学员学习,此外还有与时俱进的HTML5课程体系和HTML5视频教程供大家学习,想要学好HTML5开发技术的小伙伴快快行动吧。扣丁学堂H5技术交流群:673883249。
【关注微信公众号获取更多学习资料】 【扫码进入HTML5前端开发VIP免费公开课】