微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)

article/2025/8/20 7:30:55

1、ios端兼容input光标高度

问题详情描述:input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上

当点击输入的时候,光标的高度和父盒子的高度一样。例如下图,左图是正常所期待的输入框光标,右边是ios的input光标。

出现原因分析:通常我们习惯用height属性设置行间的高度和line-height属性设置行间的距离(行高),当点击输入的时候,光标的高度就自动和父盒子的高度一样了。(谷歌浏览器的设计原则,还有一种可能就是当没有内容的时候光标的高度等于input的line-height的值,当有内容时,光标从input的顶端到文字的底部

解决办法:高度height和行高line-height内容用padding撑开

例如:

.content{
float: left;
box-sizing: border-box;
height: 88px;
width: calc(100% - 240px); .content-input{
display: block;
box-sizing: border-box;
width: 100%;
color: #333333;
font-size: 28px;
//line-height: 88px;
padding-top: 20px;
padding-bottom: 20px;
}
}

 

2、ios端微信h5页面上下滑动时卡顿、页面缺失

问题详情描述:在ios端,上下滑动页面时,如果页面高度超出了一屏,就会出现明显的卡顿,页面有部分内容显示不全的情况,例如下图,右图是正常页面,边是ios上下滑动后,卡顿导致如左图下面部分丢失。

出现原因分析:

笼统说微信浏览器的内核,Android上面是使用自带的WebKit内核,iOS里面由于苹果的原因,使用了自带的Safari内核,Safari对于overflow-scrolling用了原生控件来实现。对于有-webkit-overflow-scrolling的网页,会创建一个UIScrollView,提供子layer给渲染模块使用。【有待考证】

解决办法:只需要在公共样式加入下面这行代码

*{  -webkit-overflow-scrolling: touch;}

But,这个属性是有bug的,比如如果你的页面中有设置了绝对定位的节点,那么该节点的显示会错乱,当然还有会有其他的一些bug。

拓展知识: -webkit-overflow-scrolling:touch是什么?

MDN上是这样定义的:

-webkit-overflow-scrolling  属性控制元素在移动设备上是否使用滚动回弹效果.
auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。
touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。

 

3、ios键盘唤起,键盘收起以后页面不归位

问题详情描述:

 输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑

出现原因分析:

固定定位的元素 在元素内 input 框聚焦的时候 弹出的软键盘占位 失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入 在失去焦点的时候给一个事件

解决办法:


<div class="list-warp"> <div class="title"><span>投·被保险人姓名</span></div> <div class="content"> <input class="content-input" placeholder="请输入姓名" v-model="peopleList.name" @focus="changefocus()" @blur.prevent="changeBlur()"/> </div> </div>
changeBlur(){      let u = navigator.userAgent, app = navigator.appVersion;      let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);      if(isIOS){        setTimeout(() => {          const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0          window.scrollTo(0, Math.max(scrollHeight - 1, 0))          }, 200)      }    }

拓展知识: position: fixed的元素在ios里,收起键盘的时候会被顶上去,特别是第三方键盘

 

4、安卓弹出的键盘遮盖文本框

问题详情描述:

安卓微信H5弹出软键盘后挡住input输入框,如下左图是期待唤起键盘的时候样子,右边是实际唤起键盘的样子

出现原因分析:待补充

解决办法:给input和textarea标签添加focus事件,如下,先判断是不是安卓手机下的操作,当然,可以不用判断机型,Document 对象属性和方法,setTimeout延时0.5秒,因为调用安卓键盘有一点迟钝,导致如果不延时处理的话,滚动就失效了

    changefocus(){      let u = navigator.userAgent, app = navigator.appVersion;      let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;      if(isAndroid){        setTimeout(function() {         document.activeElement.scrollIntoViewIfNeeded();         document.activeElement.scrollIntoView();        }, 500);      }    }

拓展知识:

Element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内。而 Element.scrollIntoViewIfNeeded()方法也是用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。但如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动

 

5、Vue中路由使用hash模式,开发微信H5页面分享时在安卓上设置分享成功,但是ios的分享异常

问题详情描述:

ios当前页面分享给好友,点击进来是正常,如果二次分享,则跳转到首页;使用vue router跳转到第二个页面后在分享时,分享设置失败;以上安卓分享都是正常

出现原因分析:jssdk是后端进行签署,前端校验,但是有时跨域,ios是分享以后会自动带上 from=singlemessage&isappinstalled=0 以及其他参数,分享朋友圈参数还不一样,貌似系统不一样参数也不一样,但是每次获取url并不能获取后面这些参数

解决办法:

(1)可以使用改页面this.$router.push跳转,为window.location.href去跳转,而不使用路由跳转,这样可以使地址栏的地址与当前页的地址一样,可以分享成功(适合分享的页面不多的情况下,作为一个单单页运用,这样刷新页面跳转,还是..)

(2)把入口地址保存在本地,等需要获取签名的时候 取出来,注意:sessionStorage.setItem(‘href’,href); 只在刚进入单应用的时候保存!【该方法未验证】

题外话:

如果能用小程序写的页面,尽量上小程序吧,H5开发在微信开发者工具里看页面效果可能看不出问题,因为不能唤起软键盘。避免频繁线上发布,可以用花生壳或者idcfengye,做内网穿透,搭建一个可以通过域名访问的开发环境的h5页面,在手机上看看效果,对了微信内置浏览器缓存机制。会导致刚提交的代码(特别是js)效果要半个小时左右才生效。

最后:

微信H5页面其实很多知识,登陆授权,jssdk授权,这里就只做了分享,当然还有上传图片、微信支付等功能,都可能会遇到坑,以上几个坑也是比较常遇到的,如果有更好的解决方案的话,欢迎在留言区分享。

转载于:https://www.cnblogs.com/qifan/p/11381084.html


http://chatgpt.dhexx.cn/article/dxopqxOC.shtml

相关文章

微信H5开发(二)

这篇主要讲解微信H5 常用到的微信模块和微信文件的引入及微信公众号、微信商务平台、微信开放平台的相关配置。 第一次使用微信开发文档的时候&#xff0c;感觉文档里面写的内容不算太难&#xff0c;但在实际开发中会碰到很多预想不到的问题。 微信开放平台、微信商务平台 有…

H5微信网页开发总结(授权,分享,地图)

H5微信网页开发总结&#xff08;网页授权&#xff0c;JS-SDK分享、地图&#xff09; 目录&#xff1a; 网页授权分享地图 参考文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 一&#xff1a;网页授权 目的&#xff1…

微信H5开发(一)

H5开发&#xff0c;一般是指移动端的页面开发。移动端可分为app和普通浏览页面。从嵌入的环境来归类&#xff1a;可以分为app、微信H5及手机浏览器里面打开的页面。 以前粗略的涉略过h5开发的一些知识&#xff0c;感觉H5并不是很难。在这半年内&#xff0c;接手并完成了两个微…

app推广渠道数据统计Xintall

APP推广时需要统计不同渠道带来的用户量&#xff0c;这个怎么做到 我们在做一款app推广的时后&#xff0c;经常会遇到一个问题&#xff0c;比如你花了一大笔预算去给自家开发的App做广告推广&#xff0c;却无法得知不同的广告素材、不同的广告位、不同的推广平台&#xff0c;各…

还在为推广发愁?这里有一份活动推广渠道清单请查收

对于运营来说,用户量和收入是两个最关键的指标。我们希望更多的用户留在我们的产品中,新用户的留存更高,老用户也拥有较高的活跃度,用户量起来了,收入的提升也变的容易了许多。而用户分为新用户和老用户,本文列举了针对老用户推广渠道,以游戏行业为例,其他行业可以触类…

浅谈游戏系统

浅谈游戏系统 某日&#xff0c;Brandon突发奇想&#xff08;脑子抽了&#xff09;买了《异度之刃2》开始游玩&#xff0c;虽然画质不如原神&#xff0c;但他还是沉下心来连续游玩了10个小时。”这游戏战斗系统怎么样&#xff1f;“ 舍友随口一问瞬间让Brandon摸不着头脑&#x…

App全渠道推广统计方案

做过 App 运营岗位&#xff0c;肯定提过类似的需求&#xff1a; 自然新增渠道&#xff1a;自然新增的用户&#xff0c;想知道他们都是从哪下载了 App&#xff0c;以为初步分析下载原因&#xff0c;好在后续提供个性化推荐等服务。H5 推广渠道&#xff1a;开展活动需要分发大量…

浅析APP应用内及新媒体类推广渠道

之前我写了一篇关于APP用户数据分析的文章&#xff0c;提到过用户来源的问题。APP的下载注册用户来自线上线下各种渠道&#xff0c;可能是在某个常逛的网站上看到APP投放的广告产生了兴趣&#xff1b;也有可能是在朋友圈看到了朋友转的APP活动链接从而被吸引…… 这些都是通过…

app推广渠道数据统计

APP推广时需要统计不同渠道带来的用户量&#xff0c;这个怎么做到 我们在做一款app推广的时后&#xff0c;经常会遇到一个问题&#xff0c;比如你花了一大笔预算去给自家开发的App做广告推广&#xff0c;却无法得知不同的广告素材、不同的广告位、不同的推广平台&#xff0c;各…

抖音最常见的付费与免费推广渠道有哪些?3+6推广技巧干货!丨国仁网络

直播作为全新的互动传播方式,带来了互联网全新盛会的同时,也开启了企业新兴传播媒介——直播营销。直播营销为企业带来更全面的潜在客户,帮助企业更好营销。 然而,在互联网营销中,任何营销方式和工具模式,都需要推广,否则直播内容再好、主播再有颜值优势,其营销效果也会…

推广渠道如何分析?

【面试题】 有两个Excel表是A、B两个渠道推广导出的玩家用户明细数据&#xff0c;自选分析角度&#xff0c;产出数据分析报告。&#xff08;某游戏公司面试题&#xff09; 渠道A的玩家 渠道B的玩家 【参考答案】 1.分析思路 研究推广渠道A与B的的推广效果&#xff0c;以及渠道用…

渠道触点归因、推广来源追踪

消费者触点 消费者与企业的产品或服务、品牌、内容或信息发生接触的任意位置。触点作为用户获取来源叫渠道。 触点归因 研究如何获客贡献在参与的各个触点或渠道间进行分配的过程。 归因作用 客观评价触点或渠道的价值与贡献&#xff0c;尤其是发现那些被埋没的真相&#xf…

如何提升游戏吸引力——选对推广渠道就是成功的一半

2017全年,我国网络游戏营收约为2011亿元,而手游占据了55.8%的份额,全年营业收入约为1122.1亿元,同比增长38.5%。尽管移动游戏进入存量市场阶段,巨大的市场规模,仍吸引着手游开发商下场瓜分蛋糕。 然而,仅仅半年时间,国内手游市场的风向就一变再变。MOBA和“吃鸡”你方…

怎么做好游戏推广运营

游戏推广有两大类方法&#xff1a;一种是推&#xff0c;一种是引&#xff1b;前者可以快速见效&#xff0c;所以绝大多数进入游戏行业的人首选想到的是如何去找玩家&#xff0c;发链接&#xff0c;推游戏&#xff1b;但是&#xff0c;这种做法在先天上存在不足之处&#xff0c;…

教你做代理,你必须掌握的4种游戏代理平台推广小妙招

目前随着游戏市场的不断发展&#xff0c;游戏代理项目也随之呈爆发式增长&#xff0c;但有很多代理商因为初次接触游戏代理项目&#xff0c;所以在代理后并不知道如何去拓展拉新玩家的渠道&#xff0c;但如果只是依靠老玩家去不断氪金来获取盈利的话也是不现实的&#xff0c;所…

人脸识别相关及其内部原理

整理并翻译自吴恩达深度学习视频&#xff0c;卷及神经网络第四章4.1-4.5&#xff0c;有所详略。 人脸验证和人脸识别 Verification与Recognition的差异&#xff1a; 验证&#xff1a; 输入图像&#xff0c;名字/ID输出输入的图像是否和输入的名字/ID是同一个人 这是个1:1问…

人脸识别实践(1) - 基本原理与设计思路

写在前面 随着时代的高速发展&#xff0c;视频监控等基础设施越来越完备&#xff0c;计算机视觉也在各行各业开始发挥出更大的效用&#xff0c;而这一领域中大家最熟知的就是刷脸支付&#xff0c;现在大家享受着科技带来的便利。还有我们乘坐高铁&#xff0c;进站前刷身份证然后…

计算机识别人脸原理,人脸识别:原理、方法与技术

人脸识别&#xff1a;原理、方法与技术 语音 编辑 锁定 讨论 上传视频 《人脸识别&#xff1a;原理、方法与技术》是2010年2月1日科学出版社出版的图书。 《人脸识别&#xff1a;原理、方法与技术》主要介绍人脸识别技术的基本原理、研究内容、研究方法&#xff0c;以及已有的研…

OpenCV人脸识别(1)原理介绍

前言 本系列博客学习如何使用OpenCV来执行面部识别。 为了构建人脸识别系统&#xff0c;我们首先进行人脸检测&#xff0c;使用深度学习从每个人脸提取人脸特征&#xff0c;在提取到特征上训练人脸识别模型&#xff0c;然后用OpenCV识别图像和视频流中的人脸。 这里提取人脸特…

基于Python的面部表情识别分析系统

资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85660758 面部表情识别 练习技能&#xff1a; 爬虫数据清洗计算机视觉&#xff08;图片基本处理&#xff0c;信息提取&#xff09;深度学习 图像识别技术文档 一、项目概述 项目名称&#xff1a;面部…