用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

微客吧 首页 教程 微信小程序 新手教程 查看内容

5个页面的打开限制,判断接口是否可用并给出"弹出提示框"提示 ... ...

纸飞机 2018-3-8 09:33

一:wx.navigateTo5个页面的打开限制问题说明:有一个包含 A、B、C、D 四个页面,A 页面为首页。小程序启动后,在 A 页面中,我们通过 navigateTo 跳转到 B 页面,然后在 B 页面中再通过 navigateTo 跳转到 C 页面。 ...

一:wx.navigateTo5个页面的打开限制

问题说明:有一个包含 A、B、C、D 四个页面,A 页面为首页。小程序启动后,在 A 页面中,我们通过 navigateTo 跳转到 B 页面,然后在 B 页面中再通过 navigateTo 跳转到 C 页面。

此时页面栈中就会包含三个元素,分别为 A、B、C 三个页面。而此时如果通过 redirectTo 跳转到 D 页面,redirectTo 会将当前页面出栈,即将 C 页面出栈,再将 D 页面入栈,这时候,页面栈中的元素则会变为 A、B、D。

此时如果在 D 页面调用 navigateBack,会发现不是返回 C 页面,而是返回到了 B 页面。因为 navigateBack 将栈中最后一个元素(D 页面)出栈后,页面栈的内容则变为 A、B。页面栈最后一个元素为 B 页面,即当前显示的会是 B 页面。

而上述「页面路径」限制为五层,其实就是规定了页面栈中的元素不能超过五个。页面栈中元素达到五个后,就不能增加了。

知乎回答(

石桥码农

):
微信小程序中的页面导航 API 有三个,两个跳转新页面的 API 分别为 wx.navigateTo 和 wx.redirectTo,还有一个 API 名为 wx.navigateBack,它用于返回页面。码农于此处给出一个理论方案:1,每次跳转都使用redirectTo,并且只在js中使用。在wxml中使用,也是通过先绑定事件,在事件函数中使用。2,自已实现一个页面栈,每次跳转之前,先推进这个自定义的页面栈。3,不使用wx.navigateBack,从自定义页面栈中取出一个页面,redirectTo这样就实现了无级跳转。小程序官方的机制,适用于简单的、层级不多的场景。使用如上自定义栈,好处还有减少内存占用,因为永远都是redirectTo。

二:判断接口是否可用并给出"弹出提示框"提示

分享者:小春

  1. //判断接口是否可用
  2. if (wx.openBluetoothAdapter) {
  3. wx.openBluetoothAdapter()
  4. } else {
  5. //如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
  6. wx.showModal({
  7. title: '提示',
  8. content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
  9. })
  10. }

三:修改窗口的背景色

  1. page {
  2. display: block;
  3. min-height: 100%;
  4. background-color: red;
  5. }
鲜花
鲜花
握手
握手
雷人
雷人
路过
路过
鸡蛋
鸡蛋
分享至 : QQ空间
收藏