H5 坑】的更多相关文章

document.addEventListener("touchmove",function(e){e.preventDefault();},false); 防止滑动时整屏页面移动 防止点击多次,尤其表单提交需要加个开关…
一开始听说开发H5,以为就是做适配现代浏览器的移动网页,心想不用管IE了,欧也.到今天,发现当初too young too simple,兼容IE和兼容安卓与IOS,后者让你更抓狂.接下来数一下踩过的坑.主要分UI展示,键盘,输入框等等.解决bug最苦恼的问题不是没有解决方案,而是你没有找到真正的原因.再就是现象难以重现,每次都要发布代码,然后到手机app中去测试,模拟.这些地方会耗费大量的精力. 一.UI相关 1.安卓4.4以下不支持fixed布局. fixed布局的作用之一就是在手机键盘弹起…
一.项目简介 1.1.项目背景:这是一个在移动终端创新应用的项目,用户在浏览器端(微信/手Q)即可完成与金秀贤的合影,希望通过这样一种趣味体验,引发用户的分享与转发的热潮. 1.2.系统要求:ios6-ios7.android3.0-android4.3.android4.4+(非webview内) 1.3.体验地址: 二.初步技术方案确定 在项目前期首先启动了技术预演,确定初步技术方案(*非最终解决方案): 2.1.获取用户照片数据2.1.1.首先放弃了主动获取用户摄像头的getUserMed…
最近在写微信公众号H5页面 遇到了一些坑,在这里记录一下 记录一下signature的计算 // 首先找到hex_sha1的加密算法,ticket 是后端提供的 var url_local = location.href.split('#')[0] var timestamp = parseInt(new Date().getTime() / 1000) var noncestr = Math.random().toString(36).substr(2)  var signature = he…
移动端H5制作安卓和IOS的坑 持续更新... 前言:最近参加公司的H5页面创意竞赛,又遇到不少页面在不同系统上的坑.踩坑之余,觉得很多之前遇到的知识点都忘了,索性开一篇博文,把这些坑都统一归纳起来,持续收集更新,于己利人,抛砖引玉. 1. ios系统手机无法自动播放BGM 这个是苹果系统限制,默认不允许自动播放音频,往往需要点一下触发play()事件才能播放. 那么我们在页面onload后触发播放事件: document.getElementById('music').play(); 到这里一…
简史 官方文档说的很清楚,商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 当然,最近微信支付平台也加入了纯H5支付,也就是说用户可以在微信以外的手机浏览器请求微信支付的场景唤起微信支付. 当然,今天的主角是微信公众号支付,其实也不一定非在公众号中打开,只要在微信中打开就可以使用. 实现 项目使用的springboot微服务来实现,以下都是简单的伪代码实现,具体逻辑见码云. Main 其实就是一个初始化下单操作,前台业务逻辑在这就不展示了,这…
用了MUI之后,才发现,那坑比我想象之中的要多得多,有些是H5的坑,有些是plus的坑,接下来我一一来吐槽一番. IOS下面,上拉的时候,速度稍微快一点,表头自动隐藏,等你不拉的时候又自动显示 这种情况,在Android下面是正常的.why? 因为mui框架的头部header和底部nav都是采用的fixed布局 <header id="header" class="mui-bar mui-bar-nav action-head" 而IOS下面压根就不支持fix…
本文来自"小时光茶社(Tech Teahouse)"公众号 作者简介: 文赫,2015年加入腾讯,作为前端开发工程师参与过手Q游戏公会,游戏中心,企鹅电竞等项目,具有丰富的移动端开发和直播开发经验. 导语 企鹅电竞项目,直播和视频播放是其中的核心.面对着产品同学不断的询问:为什么h5的体验这么差?为什么不能和app的播放体验保持一致?我们对着h5不明确的文档和不同浏览器的怪异表现欲哭无泪. 经过一系列的调研爬坑,斩荆披棘,我们一步步提升了体验,做到了和app基本一致的体验.在摸索优化背…
最近有个需求是利率只允许输入数字和小数点,用以下 <input type="number" pattern="[0-9]*"> 在ios会调起数字键盘,但是左下角竟然是空不是“.”! 这个坑相信很多移动端h5开发会遇到,需支持小数点那就不能调起这种键盘了,那只能调起以下键盘 <input type="number"> 但是问题又来了ios系统的type="number"竟然不能自动限制输入特殊字符! 那…
最近一直在写移动端页面,由于之前写移动端写的比较少,所以此次踩过许多坑.特此总结一下: 1.<input type='button'>背景色在ios中的兼容性,颜色发白 解决办法:在全局样式中加入以下代码: input[type=button], input[type=submit], input[type=file], button { cursor: pointer; -webkit-appearance: none; } 2.在vue中使用jquery weui中的地区选择器时,通过点击…
原文:https://blog.niceue.com/front-end-development/wechat-h5-payment-process-as-well-as-some-pits.html 最近做的 SPA 网站集成了微信支付,使用的是微信 H5 调起支付API接口.做完后对微信 H5 支付的流程有了进一步的了解,在前后端调试接口的过程中也遇到了一些问题,在这里记录下来. 支付流程 在订单页 ajax 请求后端发起下单,后端挂起请求 后端根据订单号结合微信支付相关配置参数向微信服务器…
h5小游戏接微信的支付,简直是在为难我胖虎,说多了都是泪. 准备工作: 准备工作一定要做好,不然很容易出错.首先是session_key这个字段,这个session_key是登录的时候需要用到的,根据code从wx.login获取到.登录成功后直接用客户端保存起来,后面支付的时候要用来签名. 其次是access_token,这个access_token不是登陆验证用到的那个,我们先看看微信文档里面怎么说. 是不是很坑,但是支付的时候签名必须要access_token.首先我想到的是存到数据库中,…
第一篇中将一些坑说明,那么这篇开始正式进入接入步骤.具体的参数说明,我不会列出,毕竟微信官方文档都有,我想大家都看的懂,而且这接口也有可能微信会变动,所以不列出来,也是不想引起大家的误解,接入步骤只起一个抛砖引玉的作用. 接入步骤 获取OpenId和授权.首先聊一下OpenId,这个东西相当于一个用户id,只是,它并不是用户的微信号,也不是用户在微信后台的标识(至少不全是).openid是当用户,经过授权后,相对于某个公众号的用户标识.换句话说,同样的用户,对于不同的公众号,其openid是不一…
最近项目进入中后期,开始接入支付.要求是使用微信支付,呵呵,好笑的是不知老板从哪里听来的,居然和我说只要是熟手,接个微信支付两小时搞定,我只能再次呵呵.先不说支付处理逻辑,而且公司本来也没现成的接入模块,再加上我对国内SDK的文档水平,我只能说,前途必定是暗坑无数,还两小时,除非是有现成接入模块,外加不用写支付后处理逻辑,配配参数了事的那种,否则哪有那么简单.(如有大神两小时内从无到有做完整个接入,加游戏相关处理逻辑,而且调式完成,请收下我的膝盖!) 好了,扯远了.进入正题.首先,这篇文章介绍的…
最近一直在做移动端的页面,发现很多的坑,这里做一下总结,填填坑…… css常见的问题(一) 一.iOS键盘首字母自动大写 IOS的机子,默认英文输入法状态下,首字母是自动大写的,有时候挺烦人的. 在iOS中,默认情况下键盘是开启首字母大写的功能的,如果业务不想出现首字母大写,可以这样: <input type="text" autocapitalize="off" /> 二.iOS输入框默认内阴影和样式问题 在iOS上,输入框默认有内部阴影,但无法使用…
之前的博客写过使用<JavaScriptCore/JavaScriptCore.h>库来实现与H5的交互,但是在项目中还是遇到了一些不得不踩的坑.在这里将我遇到的问题以及参考网上几位大神的解决方案列举出来,如果有更好的办法,欢迎讨论指正.在阅读本博客前,请参阅我之前的<iOS与H5交互>. 关于下面问题一,将JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.java…
H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> // width 设置viewport宽度,为一个正整数,或字符串‘device-…
最近我们的项目做了有关短视频的功能,当然视频的合成还是在客户端来完成,涉及到前端页面的部分就是要有一个H5的落地页,这个页面上要有对视频进行播放.起初我觉得这事儿还是挺简单的,不就是在页面上放一个<video>标签,然后用js控制播放暂停就ok了嘛.但是随着测试和上线的过程中我发现还是有好多问题值得去研究的,因此就有了这篇文章. 不就是一个<video>吗,有什么难的? 这就是我最初的想法,在W3C上找一下有关<video>的文档(http://www.w3school…
现在各种小程序风靡,这边H5的需求还没有搞定,产品又要求做小程序版本,做可以,关键是618前上线,我-- whatever,618要做推广,日期订了,剩下的就只能是排期,定方案,尽可能完成. 最后和产品商量之后的决定是:小程序中特有的营销推广的页面,用小程序编写,剩下的黄金流程,内嵌H5解决. 听起来好像很简单,but,没有想象中那么简单. 判断是否在小程序中 这个问题,网上一搜,答案很多,有说用UA的,有说用微信注入的JS对象的,有说用原生提供判断方法的. UA的有一个很大的问题,iOS判断不…
微信页面内 click事件 只在a链接的时候有效,如果是div或者span之类  一定要加上样式 cursor:pointer 点击事件才生效. <div style="cursor:pointer;" class="submit-form">提交</div> 解决微信中页面回退ios不刷新的问题 $(function () { var isPageHide = false; window.addEventListener('pageshow…
支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档真的是给人类看的么 手动滑稽) 微信h5支付 一.支付账号申请 既然说是h5支付 那就要走手机网页 需要申请 微信公众号 和 微信商户号(相关材料注册时会提示) 此处有坑 微信商户号的注册地址不知为何 放的有点隐蔽 商户平台首页 -> 右上角帮助中心->自助服务专区->申请接入教程(新版)-…
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点击即可播放.点击获取录音即可下载最后一次的音频: 播放下载都是围绕blob文件.播放就是让隐藏的audio标签的地址指向内存中的blob: this.play = function (audio,blob) { blob=blob||this.getBlob().blob; audio.src =…
第一次使用博客园写博客 1.我写博客的原因,梳理知识,整理思路,好记性不如烂笔头做个记录吧!记录生活! 1.了解 大概在我使用hbuilder的时候,在官网浏览下载的hbuilder时候无意中发现了uni-app,官网建议学习了vue.js之后就容易上手,当时还没学过vue.js,就简单了解了一下.(一年前),后来学习了vue.js也没有去学习uni-app,现在uni-app推广做的很好了,我在mpvue,vue.js的官网上面发现了uni-app的友情链接,大肆推广,搞活动鼓励大家写插件.然…
最近给公司微信公众号,写了微信h5业务页面,总结分享一下前端开发过程中的几个兼容性坑,项目直接拿的公司页面,所以下文涉及图片都模糊处理了. 1.ios端兼容input光标高度 问题详情描述:input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样.例如下图,左图是正常所期待的输入框光标,右边是ios的input光标. 出现原因分析:通常我们习惯用height属性设置行间的高度和line-height属性设置行间的距离(行高),当点击输入的时…
ios端兼容input光标高度 问题详情描述: input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样.例如下图,左图是正常所期待的输入框光标,右边是ios的input光标. 出现原因分析: 通常我们习惯用height属性设置行间的高度和line-height属性设置行间的距离(行高),当点击输入的时候,光标的高度就自动和父盒子的高度一样了.(谷歌浏览器的设计原则,还有一种可能就是当没有内容的时候光标的高度等于input的line-hei…
最近做了一些嵌入视频的活动,积累了点视频方面的经验,下面记录下别人和自己踩过的坑以及相应的解决方案.1.碰到问题和解决方案1.1.ios 网页中播放视频默认全屏(点击视频会弹出播放器进行全屏播放).解决不全屏播放可以添加下列属性webkit-playsinline='true' 和 playsinline='true' 如果设置上面属性还没有效果,那么可以再配合下面这个插件试试. iphone-inline-video备注:ios下在微博中打开网页播放视频会弹出播放器播放,设置playsinli…
最近接手了一个小型的H5,最主要的功能大概就是拍照上传和canvas画板了. 主要是记录一下自己菜到像傻子一样的技术. 1.canvas画板隔空打牛!画布越往上部分错位距离越小,越往下距离越大. 2.图片上传!白板涂鸦的内容是以base64的形式传给后端工程师的,图片上传的图片是路径,后端要求统一格式,所以需要把路径转为base64. 3.算是谷歌的限制,前端发起请求后端可以收到,也给了返回值,但前端在浏览器里看不到返回值. 就上面的问题做个记录.把我的解决办法记录一下,不是最优的还有可能是错误…
Taro 开发踩坑指南 (小程序,H5, RN) css taro 如何展示多行文本省略号 https://www.cnblogs.com/xgqfrms/p/12569057.html UI 设计稿尺寸 375px * 2 === 750px (iphone 6) https://www.cnblogs.com/xgqfrms/protected/p/12568792.html js taro 绑定事件 https://nervjs.github.io/taro/docs/event.html…
----微信支付文档,不得不说,挺乱!(吐槽截止) 功能背景 微信公众号中,点击菜单或者扫码,打开公众号中的H5页面,进行支付. 一.技术栈 前端:Vue:3.0.0,typescript:3.9.3,axios,vant,weixin-jsapi(微信官方wxjsdk) 后端:Koa,wxpay-3(不错的apiv3封装 https://github.com/yangfuhe/node-wxpay),axios 二.微信公众平台配置 1. 申请公众号. 2. 公众号设置:功能设置,JS接口安全…
项目进行中...随时更新 这里记录了一些手机端调试的方式 一 css 1.文字超过span宽度显示...(单行文字) .topWrap .introduce span { padding: 0 17px; display: inline-block; border-radius: 5px; height: 18px; line-height: 18px; margin-top: 15px; max-height: 18px; max-width: 90%; white-space:nowrap;…