微信小程序> 如何识别并监听微信小程序的息屏操作

如何识别并监听微信小程序的息屏操作

浏览量:742 时间: 来源:炎夏之翳

如何识别并监听微信小程序的息屏操作

新人初来乍到,大二学生。在做小程序的过程中,遇到了关于onHide()函数状态识别(是否退出程序或者微信,还是仅仅息屏)的需求,百度一圈发现有这种需求的还不在少数,无奈问的多,做到的少,微信官方也没有提供onHide()。一筹莫展的时候,我决定另辟蹊径,成功地通过鸡贼的操作做到了关于息屏和离开页面的监听需求,希望能够帮到大家。

—————————————咸鱼的分割线———————————————
以上全是废话,不看也罢,直接上代码!
!!!!!(注意,以下代码目前只适用于iOS系统,安卓还不能实现)!!!!

如何判断是否离开小程序页面(包括退出微信)

众所周知,小程序官方提供了onHide函数,此函数用法如下:
小程序
代码很简单但是缺点也很明显,微信官方给的onHide()的执行条件是“小程序从前台进入后台时触发”,解释一下,就是只要用户看不见这个页面,包括离开小程序,离开此页面,离开微信,熄灭屏幕……都会被调用。

所以onHide()其实在某些时候会变得很鸡肋,那该如何使onHide()变得灵活呢?

一个鸡贼的可行解以识别用户息屏操作

在最开始的时候,我也一筹莫展,但想要监听onHide()函数其实也不是非常难的事情。
还记不记得微信官方提供的wx.getScreenBrightness()函数?对,有人应该已经猜到我下一步要干什么了。
先放一段官方文档:
https://developers.weixin.qq.com/miniprogram/dev/api/device/screen/wx.getScreenBrightness.html
小程序

——————————————————重点——————————————————
息屏其实是一个状态,它其实可以被理解成屏幕亮度逐渐熄灭至零。而亮屏其实可被理解成屏幕亮度从零逐渐变大到默认亮度。
之前很火的iOS睁眼壁纸其实就是这个原理,有兴趣的可以去试试。
所以之后的事情就变得非常简单了,只要将对屏幕亮度的监听函数写在onHide()函数里,就可以实现对监听事件的监听了。
(!!!再次提醒,安卓平台暂不支持该种操作,因为安卓系统息屏的时候屏幕亮度并不会至零,还是息屏前的值!!!)

息屏监听代码

/**   * 生命周期函数--监听页面隐藏   */  // 当检测到系统为iOS时,开启离开提示功能  onHide: function() {    var that = this;    wx.getSystemInfo({      success: function(res) {        that.setData({          systemInfo: res,        })        if (res.platform == "ios") {          wx.getScreenBrightness({            success: function(res) {              console.log("当前屏幕亮度:" + res.value)              if (res.value !== 0) {                $wuxDialog().alert({                  resetOnClose: true,                  maskClosable: false,                  closable: false,                  title: '失败',                  content: "因为您在任务期间退出了该页面,此次任务失败",                  onConfirm(e) {                    wx.switchTab({                      url: "../today/today"                    })                  },                })              }            }          });        } else if (res.platform == "android") {                             }      }    })  },

总结

这是我第一次在CSDN发帖,还不是很熟练,语言上的小纰漏也请各位大爷们担待。希望我这个小透明能帮助到大家( ̄▽ ̄)~

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎