当前位置:   article > 正文

问题:微信小程序开发之 --- app.js文件介绍

app.js

App()

App() 函数用来注册一个小程序。接受一个 object 参数(本质就是function 和 data),其指定小程序的生命周期函数等。

object参数说明:

属性类型描述触发时机
onLaunchFunction生命周期函数–监听小程序初始化当小程序初始化完成时,会触发 onLaunch(全局只触发一次
onShowFunction生命周期函数–监听小程序显示当小程序启动,或从后台进入前台显示,会触发 onShow
onHideFunction生命周期函数–监听小程序隐藏当小程序启动,或从后台进入前台显示,会触发 onShow
onErrorFunction错误监听函数当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
其他Any 开发者可以添加任意的函数或数据到 Object 参数中,内部 用 this 可以访问 ,外部用 getApp() 访问

前台、后台定义:

当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并 没有直接销毁,而是进入了后台;
当再次进入微信或再次打开小程序,又会从 后台进入前台
需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

关闭小程序(基础库版本1.1.0开始支持):

当用户从 扫一扫、 转发等入口(场景值为 1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。

一、获取app() 内容的方法

getApp()

此函数 为全局函数 可以用来获取到小程序 实例

代码(其他子文件中的js代码)

  1. // other.js
  2. var appInstance = getApp()
  3. console.log(appInstance.globalData) // 控制台输出 :I am global data

注意:

  1. App() 必须在 app.js 中注册,且不能注册多个。
  2. 不要在定义于 App() 内的函数中调用 getApp() ,使用this 就可以拿到 app 实例。
  3. 不要在 onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。
  4. 通过 getApp() 获取实例之后,不要私自调用生命周期函数

二、app.js文件是项目的入口文件:

  1. //app.js
  2. App({
  3. onLaunch: function () {
  4. // 展示本地存储能力
  5. var logs = wx.getStorageSync('logs') || []
  6. logs.unshift(Date.now())
  7. wx.setStorageSync('logs', logs)
  8. // 登录
  9. wx.login({
  10. success: res => {
  11. // 发送 res.code 到后台换取 openId, sessionKey, unionId
  12. }
  13. })
  14. // 获取用户信息
  15. wx.getSetting({
  16. success: res => {
  17. if (res.authSetting['scope.userInfo']) {
  18. // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
  19. wx.getUserInfo({
  20. success: res => {
  21. // 可以将 res 发送给后台解码出 unionId
  22. this.globalData.userInfo = res.userInfo
  23. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  24. // 所以此处加入 callback 以防止这种情况
  25. if (this.userInfoReadyCallback) {
  26. this.userInfoReadyCallback(res)
  27. }
  28. }
  29. })
  30. }
  31. }
  32. })
  33. },
  34. globalData: {
  35. userInfo: null
  36. }
  37. })

页面的 page.js 文件会覆盖 app.js文件

App.js文件里面的一些方法:

onLaunch : function(){}:

onLoad:function(options){}:页面初始化 options 为页面跳转所传递过来的参数

onReady:function(){}:页面渲染完成

onShow:function(){}:页面显示

onHide:function(){}:页面隐藏

onUnload:function(){}:页面关闭

还可以在 app.js里面定义一些全局的方法:

例如:获取用户信息的方法(wx.getSetting)和属性(globalData):

在 page 页面如何获取 app.js 定义的属性:

首先在 page.js 文件里面:const  app = getApp(); 在对应方法里面直接console.log(  app.globalData.userInfo  );

实例:获取当前微信用户信息

这个可以用在登陆页:判断是否存在登陆。登陆过就改变 app.js 里面的配置。

使用:

例如这个用户是否登陆了,如果全局里面没有用户的信息,需要跳转到登陆的页面进行登陆,如果说有了用户的信息就不用跳转到登陆页面,当登陆完成之后,我们就可以设置全局的数据,然后返回到跳转的页面,直接读取用户的信息就可以。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/120962
推荐阅读
相关标签
  

闽ICP备14008679号