首页 APP开发 正文

uniapp开发h5刘海屏适配(uniapp开发h5)

APP开发 1663
本篇文章给大家谈谈uniapp开发h5刘海屏适配,以及uniapp开发h5对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、uni-app 入门到精通 (二)

本篇文章给大家谈谈uniapp开发h5刘海屏适配,以及uniapp开发h5对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

uni-app 入门到精通 (二)

18 年时候有幸接触到 uniapp , 写了一篇 《uni-app 入门到精通》 ,由于一些原因,该方案并没有执行,该项目一系列文章也就没有再写下去,所以遭受到了许多人评论的吐槽,到如今公司项目的需求又要根据 uniapp 写 H5 嵌入到 app 中,所以想根据项目实际开发分享一下,有兴趣的伙伴可以参考和吐槽。

这一篇文章主要分享一下内容

uniapp 模板项目有两种初始化方式

由于无法舍弃 VSCode ,我们采用 vue-cli 来初始化项目, HBuilderX 大家可以参照官方文档

这种方式是可以通过 vue 脚手架命令指定模板,这个是 dcloudio 的官方提供模板

我们选择默认模板即可,

成功后我们执行

打开浏览器地址,直接运行即可。

一般刚接触前端的小伙伴可能会对 postcss 不太了解,这里简单介绍一下,

当然 PostCSS 具体使用是需要引入一些插件的,例如常用的是 autoprefixer postcss-preset-env 等, 具体如何使用大家可以自行参考资料,毕竟这块知识还是挺多的就不具体展开解释了。

通常我们在写移动端时候需要做的是页面适配方案的确定, uni-app 支持的通用 css 单位包括 px、rpx , 之前的 upx 方案已经被废弃掉,官方解释是目前市面上已经基本上支持了微信的 rpx 方案,所以 upx 中转方案已经意义不大了,不过还可以继续使用,不过已经不再推荐。

rpx 之初是由微信小程序提出一种方案,即根据宽度来进行适配以 750 宽屏幕为基准, 750rpx 恰好为屏幕宽度, uni-app 规定屏幕基准宽度 750rpx 。所以说如果你们的UI 设计以 750*1334 iphone 6/6s 为基准设计的话,你只需要将屏幕上 px 写为 rpx 即可,不用做任何换算,如果不是的话,你就需要做如下换算:

uniapp 有自己一套路由管理机制,而未采用 vue-route 方案,个人认为这套方案还是比较成熟和好用的,以及可以满足我们日常的需求:

保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。

2.uni.redirectTo(OBJECT)

关闭当前页面,跳转到应用内的某个页面。

3.uni.reLaunch(OBJECT)

关闭所有页面,打开到应用内的某个页面。

注意: 如果调用了 uni.preloadPage(OBJECT)) 不会关闭,仅触发生命周期 onHide

4.uni.switchTab(OBJECT)

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。

注意: 如果调用了 uni.preloadPage(OBJECT)不会关闭,仅触发生命周期 onHide

5.uni.navigateBack(OBJECT)

关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。

5.uni.preloadPage(OBJECT)

预加载页面,是一种性能优化技术。被预载的页面,在打开时速度更快。

以上路由API 已经满足我们的需求,当然进行路由跳转的前提是我们需要在 pages.json 进行路由配置, 包括路由和具体的样式配置

而进行具体路由跳转我们需要如下,需要多加一个 /

需要特别注意的一点是, 利用浏览器 在 进行 移动H5页面调试时候,会出现页面刷新之后页面栈会消失,此时navigateBack不能返回,如果一定要返回可以使用history.back()导航到浏览器的其他历史记录。

uniapp 提供网络请求的 api 是 uni.request ,具体支持的请求方法可以参考官网 method 有效值

不过我们通常不会直接使用,而是进过一系列的封装以方便我们的使用,具体封装接口使用会在随根据页面数据请求一并展示。

uni-app在H5跨域问题小程序不需要跨域导致的兼容问题解决

应用场景:很多时候我们开发uni-app的时候,在H5端总是会遇到跨域问题,但是小程序这些不需要跨域,导致出现的不兼容问题 ,本篇文章完美解决了这些问题

【uniapp】兼容刘海屏底部安全区

因为iphoneX等机型最下面会有条黑色等线,导致按钮等元素被遮住部分,所以设置安全区边距会往上提,如果不是刘海屏则保持原来样式。(注:在小程序模拟器上不生效,以真机为准。)

iOS方案一:使用原生占位(仅App端支持)

iOS方案二:不使用原生占位(非App端可以不配置manifest

在你需要调大边距的盒子添加以下样式

uniapp开发遇到的问题总结

解决方案:

定义一个布尔类型的变量放到页面上去,改变循环的数据的某个属性时,给该变量赋值成false,然后再设置成true

只能使用create生命周期去构造了,如果不能满足的话就另想其他办法了

使用 placeholder-class 属性设置一个类名,再用该类名写样式去覆盖掉原有的样式

使用js给img标签添加行内样式以达到目的

经过顽强的询问,搜索,才知道HBuilderX 2.9.0+ 相关更新:调整根字体大小为系统默认大小与微信小程序平台一致,调整后 rem 默认大小不再为 窗口宽度/20,改为了浏览器(webview)默认的字体大小,一般为 16px

这是社区给的解决方案: 更新 HBuilderX 2.9.0+ 后 rpx(upx)、rem 样式变形的处理办法

我做的项目主要是使用 rpx 的部分变形,使用的解决方案为 宽屏适配指南

在里面找到的解决方案如下:

在 pages.json 的 globeStyle 里配置 rpx 的如下参数

关于uniapp开发h5刘海屏适配和uniapp开发h5的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码