前言: 用appium做UI自动化,测试APP里面的H5和测试手机浏览器打开的H5的操作流程上是有所区别的.比如要测试APP内嵌的H5需要先操作appium启动APP,然后通过context切到webview模式,才能操作H5页面,但是如果测试手机网页的话就比较简单了,设置好浏览器比如选择Chrome,直接访问网址就好了. APP内嵌H5: 如何判断APP里面是否有H5呢, 使用uiautomaterview的时候发现页面元素含有webview,这就说明这个APP是混合应用,那么如何测试这个AP…
ios下做新闻详情用h5页面实现然后打包到app中,其中新闻详情页会有视频,安卓下video的poster可以做到适应video大小,但是ios下会按照poster图片大小将video等比撑大,但是视频显示不全(超出手机宽度),原始poster图片大小是750x420尝试诸多方法包括设置object-fit:fill;等,都无效,最后把封面图等比缩小为420x236完美解决: 总结: ios下的webview会将video的poster等比放大适应video:但不会等比缩小适应video:…
1.带滚动条的dom需加样式 -webkit-overflow-scrolling: touch;2.去掉 width:100%; height:100%…
我们的目的是再滑动的时候 不要触发到touchstart事件. // 再滑动的时候无法点开视频 var is_scroll_start,is_scroll_end; $(window).on({ 'touchstart':function(){ is_scroll_start=$(document).scrollTop(); }, 'touchmove':function(){ is_scroll_end=$(document).scrollTop(); }, 'touchend':functi…
在APP中内嵌H5页面,若页面上存在下载链接,没有任何反应,为什么呢? 原因是app中内嵌的H5页面是WebView解析的,什么是WebView呢? 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件. WebView控制调用相应的WEB页面进行展示.当碰到页面有下载链接的时候,点击上去是一点反应都没有的.原来是因为WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置WebView的DownloadListener,通…
混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一下对混合开发的认识以及实现方式. 混合开发的优点 优点显而易见,由前端工程师写一个页面,多个平台都可以运行,省了Android和iOS工程师不少事,无形中提高了开发效率,节约了开发成本. 缺点 凡是使用过的人都知道,H5的界面显示在手机上,对点击.触摸.滑动等事件的响应并不如原生控件那样流畅,甚至还…
男左女右中国APP需要做一个APP分享视频H5页面,效果图见下面的图. 出现的问题: (1)URL参数为中文的时候乱码: (2)vedio点击默认是QQ,微信的播放器: (3)给视频添加一个默认的封面. 解决方法: 1.做一个app分享页面,因为只有一个页面,前端和后台接口有跨域的问题,后台不想改,所以就商量说APP要被分享的页面直接传递参数给我. 因为参数比较多,里面有些描述.名字的字段是中文,直接返回给我出现了乱码. 2.让传字段的时候用 encode编码,我用decode解码,发现在谷歌中…
小程序内嵌h5页面跳转小程序指定页面,  需要引用  JSSDK:   <script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script> //h5页面 aaa.html<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="view…
安卓手机的情况下,可以用chrome浏览器来调试. 打开地址: chrome://inspect/#devices 手机用USB数据线连接电脑,并启动USB调试模式. 只要在APP中打开H5页面,界面就会显示该页面地址 点击inspect进入调试模式 之后就可以像调试浏览器页面一样调试了. 这个方法也可以用来查看APP中哪些页面调用的是H5的页面. 苹果手机可以用Safari自带的调试工具调试,在Safari浏览器工具栏-开发一栏下.…
客户需求:禁止微信内的H5页面上下拖动: 解决方案: 网上的答案几乎都是阻止默认事件,即: document.body.addEventListener('touchmove' , function(e){ e.preventDefault(); }); 但是使用这个方法还存在一定的问题: bug1:有时生效有时失效: 原因:经过不间断的实践测试,发现有可能是网络加载的问题,在用户拖动页面的时候上面的功能代码还没加载出来,所以没有生效. 解决方法:监听页面资源加载,等页面内所有资源加载完毕后再将…
异常如下: ios应用内嵌h5页面,本来是设置了白色的数字,两三秒之后会自动变为黑色,然后点击的时候就会弹出是否拨号的提示: 解决方法: 添加如下meta标签,即可解决: <meta name="format-detection" content="telephone=no">…
H5手机移动端调起浏览器(qq浏览器,uc浏览器)自带分享功能实例 (转载:https://blog.csdn.net/weixin_38787928/article/details/86741227) html: <span "></span> <span "></span> <span "></span> <span "></span> js: // 引入JS文件 &…
最近产品提出了一个需求:我们在合作方的app中提供的部分页面中增加分享页面,具体要求是在3个二维码推广页面调用app的分享接口,分享方式有3种,分别是点击”分享链接“按钮调起分享,点击”分享图片“按钮调起分享,以及长按保存页面. 二维码的推广页面是由一张背景图和一张动态生成的二维码图片组成. 点击”分享链接“调起分享非常简单,就不再赘述了. 点击”分享图片“按钮进行分享,合作方app接口要求传入进行分享的图片地址.这就要求分享出去的图片先要存在图片服务器中,但是每个用户的分享二维码是不同的,我们…
在小程序内直联h5的页面(pages/webview/webview.js),该页面为<web-view>的容器,使用<web-view>组件 <web-view wx:if="{{h5url}}" src="{{h5url}}" bindmessage="h5PostMessage" ></web-view> 需要bindmessage事件和postMessage方法 bindmessage:网页…
好久没写博客了,大半年时间花费在了许多杂事上. 最近1个月专门为H5页面的app开发了一些埋点功能,主要是考虑到以后的可复制性和通用型,由于不是前端开发出身,相对来说还是比较简陋的. 正题开始:H5页面的埋点主要涉及到的元素有a标签,button按钮,以及form表单的提交. 目前实现的功能基本还都是代码埋点的方式,但是相对来说比较简洁了,我这里主要是针对a标签和button的事件埋点. 第一个js脚本 bigdataIndex.js var _qjmap = _qjmap || []; var…
混合APP开发中,前端开发H5页面,不免会把兼容性拉进来,在做页面的兼容性同事,会与原生app产生一些数据交互: 混合APP开发,安卓的兼容性倒是好说,安卓使用是chrome浏览器核心,已经很好兼容H5页面,而且运行机制也是能够同步运行:但ios上就没那么容易了:. 在此我就不说兼容安卓的问题,只把ios问题说说: 问题1:H5调用ios接口,ios需要初始化,js代码在ISO上只运行一次 解决: 本人使用是angular框架搭建的H5页面 var ua = navigator.userAgen…
微信分享,咋一看好像很复杂,实则非常简单.只需要调用微信官方出的微信jssdk,加上些许配置,就可以实现h5页面在微信上的分享,官方文档地址为: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 一.获取基本信息 找到已有公众号的appid,根据这个appid和url向后端发起请求,拿到配置所需要的参数:timestamp.noncestr和signature. 二.实现 1.页面引入JS-SDK文件 通过scri…
微信分享,咋一看好像很复杂,实则非常简单.只需要调用微信官方出的微信jssdk,加上些许配置,就可以实现h5页面在微信上的分享,官方文档地址为:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 一.获取基本信息 找到已有公众号的appid,根据这个appid和url向后端发起请求,拿到配置所需要的参数:timestamp.noncestr和signature. 二.实现 1.页面引入JS-SDK文件 通过scrip…
判断微信及小程序环境 1.H5页面引入jweixin-1.3.2.js 2. var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i) == 'micromessenger'){ //判断是否是微信环境 //微信环境 wx.miniProgram.getEnv(function(res) { if (res.miniprogram) { // 小程序环境下逻辑 }else { //非小程序环…
最近项目有一个需求 -- 做一个百人抽奖的模块,要求展示百人的头像并且不断变化排列组合 先展示一部分的用户头像,然后每增加一个用户就增加一个头像在百人排列里面 我整一个gif图来展示一下 大概就是这种动画效果, 底层的动画效果我是通过jq22找的一个jquery插件, 然后改吧改吧改成现在这个样子了 因为html页面,我就直接使用了h5外链的形式引入了进去 但是应用宝审核警告这个链接可能有风险,让我尽量少用 然后我就添加进去uniapp项目里面了,之后我就遇到了html页面和uniapp的vue…
先mark 1 .  移动端uc浏览器不兼容css3 calc() 2 .  ie8下a标签没有内容给宽高也不能触发点击跳转 3 . safari输入框加上readOnly="ture"属性仍然可以触发获取焦点,可再加上onfocus="this.blur()"解决 4 .  animate在移动端卡顿严重,移动端运动要用css3实现 5 .  ios下伪类事件失效,可给当前元素的touchstart/touchend事件绑定一个空匿名函数 解决 6 . 移动端或w…
vConsole:一个轻量.可拓展.针对手机网页的前端开发者调试面板,主要还是用于内嵌app页面时在手机上进行调试,打印完全和在PC端一样,方便大家找出问题所在. 不说废话直接进入主题,vConsole.js最新下载地址. 直接将vConsole.js引入项目中,需要注意的是:最好吧js引入到页面的最上边.这样刚页面会首先加载vConsole.js. <script src="path/to/vconsole.min.js"></script> <scri…
摘要:使用的插件为webviewJavaScriptBridge,app端需要引入一下这个包,html页面只需一段JS代码 与IOS交互 <! 申明交互(此处代码固定) > function setupWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); } if (window.WVJBCallbacks) { re…
IOS系统的惯性滑动效果非常6,但是当我们对div加overflow-y:auto;后是不会出这个效果的,滑动的时候会感觉很生涩.怎么办? 方案一: 在滚动容器内加-webkit-overflow-scrolling: touch 但这个方案有一个问题,在页面内具有多个overflow:auto的情况下,那些具有 绝对定位(absolute, fixed) 属性的元素,也会跟着滚动. 方案二: body {overflow-x: hidden} 即,给 body 元素添加overflow-x:h…
if (this.GLOBAL.env !== 'production') { try { window.JSBridge.shareMiniProgramToWx('https://www.lexing360.com', 'gh_3169b34f2f0a', `/pages/demandDetail/demandDetail?searchId=${this.id}&buyer=${this.vid}`, `邀请您为准单报价[${this.shareCar(this.searchInfo.ser…
1.input框无法获取焦点输入内容 input { -webkit-user-select: auto; } 2.div里面放img标签有3px的距离 div { font-size: 0; } img { display: block; }…
<div class="weixin-tip"> <p> <img src="img/live_weixin.png" alt="微信打开"/> </p> </div> <script type="text/javascript"> $(window).on("load",function(){ var winHeight = $(wi…
1.上传组件 <!-- - hasBorder {Boolean} cell底部边框,oneline 为 true 有效 - inlineBorder {Boolean} cell底部短边框 - height - titleColor {String} 标题颜色 - readOnly {Boolean} date/radio/address 类型只读 - inputData @updateValue传递value 获取 输出String或Number,address类型输出 [provinceI…
最近,做了个小需求.因为app是使用的自定义字体,所以产品想让h5的字体跟app的字体一致,减少脱离感.而一般来说,app内的h5页面,都是显示系统的默认字体.要想使用自定义字体,一般的做法是在h5里面加上字体库,然后app端,在加载url的时候,会去下载这些字体.但是字体包一个动辄3,4M,要是有多个字体库的话,不用想,体验会很糟糕.所以这种下载的方式不太可行.但它的好处就是,在所有的浏览器上都支持. 指定font-family 搜索一番,发现可以直接指定font-family为iOS字体库的…
最近参与了APP内嵌H5页面的开发,这次使用vuejs替代了jQuery,仅仅把vuejs当做一个库来使用,效率提高之外代码可读性更强,在此分享一下自己的一些开发中总结的经验. 关于布局方案 当拿到设计师给的UI设计图,前端的首要任务就是布局和样式,相信这对于大部分前端工程师来说已经不是什么难题了.移动端的布局相对PC较为简单,关键在于对不同设备的适配.之前介绍了一篇关于移动端rem布局方案,这大致是网易H5的适配方案.不过实践中发现淘宝开源的可伸缩布局方案效果更好且更容易使用. 网易云的方案总…