微信小程序常见问题

一、原生video组件层级问题

在微信小程序的开发中,总有一些“VIP”组件,他们的层级,高得让人抓狂,总是凌驾于很多其他低层级组件之上,如:video组件、map组件、canvas组件等。

由于视频组件层级过高并且无法使用z-index进行控制层级,导致许多人都无法在视频组件之上放置一些其他的组件, 为此,一些漂亮的视频设计往往还没开始就宣告了结束。

解决方案:

1.利用cover-view组件

cover-view组件是覆盖在原生组件之上的文本视图,可覆盖的原生组件包括map、video、canvas、camera、live-player、live-pusher,只支持嵌套cover-view、cover-image,可在cover-view中使用button(但点击事件不可用)。使用cover-view组件可解决video等原生组件的层次问题,使元素在video等原生组件之上。

2.用视频封面图替代视频组件,思路如下:

(1)在渲染页面的时候,使用假视频来代替视频组件,也就是使用视频封面图充当一个视频组件;

(2)当用户点击视频封面时,进行两步操作,第一,隐藏视频封面;第二,播放视频;

(3)当存在同一页面多视频的时候,需要进行视频切换的处理。

二、wx.navigateTo层叠5次限制

小程序页面的实例使用栈的数据结构存储,栈内元素最多5个(换一种方式说,就是用户最多能点击5次返回),微信小程序能在栈中相对高层某个页面调用其他相对低层的页面实例的方法。

小程序三种页面跳转API 的区别在于:

(1)wx.navigateTo 不会将旧页面出栈,会将新页面入栈。(栈内元素个数增加,栈内元素5个时,不能再跳转)

(2)wx.redirectTo 会将栈顶的旧页面出栈,再将需要跳转到的页面入栈(栈内元素个数不变);

(3)wx.navigateBack 则是将页面栈最后一个元素出栈,因此倒数第二个元素会成为最后一个元素,即变成当前页面;也可以连续出栈好几个元素(大于栈内元素的个数则返回首页)返回栈中的某个页面。

特殊情况,应减少navigateTo的使用,比如小程序的商城,在用户下单的页面用户需要选择收货地址,然后程序根据用户的选择再返回该界面显示用户选择的收货地址是什么。这时可能需要在用户的下单界面跳转到地址界面,地址的界面可能有编辑地址之类的操作,用户选择地址后返回下单界面,显示刚刚用户选择的收货地址是什么。这个时候可以采用wx.navigateBack来减少navigateTo的使用,防止返回时回到地址页面。很多情况下都会有画圈这样的操作,就是经过一系列的界面后取得数据又返回了原来的界面,这个时候可以使用。

三、小程序下拉刷新页面不回弹

在下拉函数里面,加上wx.stopPullDownRefresh()来停止当前页面下拉刷新,即可解决刷新页面不弹回的问题。

你可能感兴趣的:(微信小程序常见问题)