解决方案

uni-app的H5版使用注意事项

作者:仙宝云 | 发布时间:2021-07-24 10:27:49 | 阅读:814

跨端留意

uni-app由uni的通用api和平台专有api构成,H5版也不例外可以运用uni的通用api完成良多工作,也可以在条件编译里调用H5版的浏览器专有api

虽然dom、window都可以用了,但如果如果跨端,还是少写这样的代码好

H5仍应当应用pages.json管理页面,强烈不提议利用浏览器的跳转页面的api

H5的条件编译写法是把之前的app-plus换成H5讹诈ifdef见面有代码助手提醒

条件编译目前有7个平台,APP-PLUS、APP-PLUS-NVUE、MP-WEIXIN、H5、MP、MP-BAIDU、MP-ALIPAY
其中APP-PLUS-NVUE是APP-PLUS的子集,用于weex下单独写专用代码
为了便利大都平台选择,还引入了~#ifndef~,也就是ifdef的not,反向挑选以及或语法,及||这些命名都是c语言条件编译的规范定名。

开发者之前为微信或app写的代码,H5的平台不支撑不时,需要留意把这些代码放到条件编译里

经过这样的处理,之前做好的App或小程序才干正常运转到H5版里

小程序版在UI上,尤其是导航栏上限定较多,H5在这里是参考了app,默认剖析了pages.json下的app-plus的节点,实现了titleNView、buttons、下拉刷新(下拉刷新只有circle方法,因为只有这样的下拉刷新在H5版上可以保障流利体验)

组件和API支持情形

目前的H5版,还没有100%实现uni的所有api,但大部分已经完成,具体参考uniapp文档

第三方组件撑持

  • 支撑mpvue组件
  • 支撑普通vue组件(仅H5平台)
  • 撑持微信小程序组件(HBuilderX2.5.0+起头支撑编译到H5)
  • 撑持nvue

vue语法支撑

H5版支持完好的vue语法,同时校验重视也校验了更严厉的vue语法,有些写法不标准会见报警比如data后面写对象见面报警,必须写function

注意事项(必看)

  • 编译为H5版后生成的是单页应用,SPA如果想要seo优化,首页可以在template模板中配置keyword二级页不撑持配置但一个更酷的方法是用uni-app直接公布一版百度小程序,搜寻权重更高
  • 编译后看日记和错误,如果看浏览器的控制台,而不是HBuilderX的控制台。浏览器的控制台会面有错误提醒
  • 网络恳求(request、uploadFile、downloadFile等)在浏览器存在跨域限定(CORS、Cross-Origin),解决方案详见:https://ask.dcloud.net.cn/article/35267
  • APP 和微信的原生导航栏和tabbar下,元素区域坐标是不包含原生导航栏和tabbar的而 H5 里原生导航栏和tabbar是 div 模仿实现的,所以元素坐标会晤包含导航栏和tabbar的高度为了优雅的解决多端高度定位题目,uni-app新增了2个css变量:–window-top和–window-bottom,这代表了页面的内容区域距离顶部和底部的距离举个实例,如果你惦念在原生tabbar上方悬浮一个菜单,之前写bottom:0这样的写法编译到h5后,这个菜单会面和tabbar重叠,位于屏幕底部而改为应用bottom:var(–window-bottom),则不管在app下还是在h5下,这个菜单都是悬浮在tabbar上浮的这就幸免了写条件编译代码当然你也仍然可以利用 H5 的条件编译处理界面的不同
  • CSS內运用vh单位的时分留意100vh包含导航栏,运用常常需要减去导航栏和tabBar高度,局部浏览器还包含浏览器操作栏高度,利用不时请注意。
  • event 对象上应用的 mpvue 独有的属性需要调整(比如 event.pageY,可能需要加上44px的导航栏高度)
  • fixed定位的组件有可能遮挡框架内置UI组件,如果不期望遮挡可以划分平台断定,在H5平台避开内置UI
  • 正常支撑rpxpx是真实物理像素暂不撑持通过设manifest的”transformPx” : true,把px当动态单位利用
  • 利用罗盘、地理位置、加快盘算等相关接口需要利用https协议,本地预览(localhost)可以应用 http 协议
  • PC 端 Chrome 浏览器模拟器设备测试的时分,获得定位 API 需要连接谷歌服务器,需要翻墙
  • 组件内(页面除外)不撑持onLoad生命周期
  • 为幸免和内置组件冲突,自定义组件恳求加上前缀(但不能是u和uni)比如但是运用的自定义组件称号:my-view、m-input、we-icon,例如不可应用的自定义组件称号:u-view、uni-input。

智慧商业服务商仙宝云欢迎您!

请加微信: 18962171986 (宋经理)

在线咨询