位置:电子教程 > 微信小程序入门教程 (如果看不到内容请使用360浏览器) 推荐学习资源
小程序起步
小程序基础知识
小程序基础语法
当前阅读教程:微信小程序入门教程 > 小程序App注册程序
阅读(22555525)      收藏       赞(5685)      分享
上一篇: 逻辑层.js脚本 下一篇: 运行机制

小程序App注册程序包含一系列函数,例如:App(Object)onLaunch(Object)onShow(Object)onHide()onError(String error)onError(String error)onError(String error)等。下面分别介绍。

1.App(Object)

App() 函数用来注册一个小程序。接受一个 Object 参数,指定小程序的生命周期回调等。App() 必须在 app.js 中调用且只能调用一次。不然会出现无法预期的后果。Object参数说明参见表2-9

表2-9 Object参数表

属性

类型

描述

触发时机

onLaunch

Function

生命周期回调—监听小程序初始化

小程序初始化完成时(全局只触发一次)

onShow

Function

生命周期回调—监听小程序显示

小程序启动,或从后台进入前台显示时

onHide

Function

生命周期回调—监听小程序隐藏

小程序从前台进入后台时

onError

Function

错误监听函数

小程序发生脚本错误,或者 API 调用失败时触发,会带上错误信息

onPageNotFound

Function

页面不存在监听函数

小程序要打开的页面不存在时触发,会带上页面信息回调该函数

其他

Any

开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问


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

关闭小程序(基础库版本1.1.0开始支持): 当用户从扫一扫、转发等入口(场景值为1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。

小程序运行机制在基础库版本 1.4.0 有所改变:上一条“关闭小程序”逻辑在新版本已不适用。

代码示例

小白教程网www.2d5.net

如下:

App({

  onLaunch: function(options) {

    // Do something initial when launch.

  },

  onShow: function(options) {

    // Do something when show.

  },

  onHide: function() {

    // Do something when hide.

  },

  onError: function(msg) {

    console.log(msg)

  },

  globalData: 'I am global data'

})

2.onLaunch(Object)

小程序初始化完成时触发,全局只触发一次。Object 参数说明参见表2-10

表2-10 Object参数表

字段

类型

说明

path

String

打开小程序的路径

query

Object

打开小程序的query

scene

Number

打开小程序的场景值

shareTicket

String

shareTicket获取更多转发信息

referrerInfo

Object

当场景为由从另一个小程序或公众号或App打开时,返回此字段

referrerInfo.appId

String

来源小程序或公众号或App的 appId,详见下方说明

referrerInfo.extraData

Object

来源小程序传过来的数据,scene=1037或1038时支持




referrerInfo.appId场景值参见表2-11

表2-11 referrerInfo.appId场景值

场景值

appId 信息含义

场景

1020

来源公众号appId

公众号 profile 页相关小程序列表

1035

来源公众号appId

公众号自定义菜单

1036

来源应用appId

App 分享消息卡片

1037

来源小程序appId

小程序打开小程序

1038

来源小程序appId

从另一个小程序返回

1043

来源公众号appId

公众号模板消息

3.onShow(Object)

小程序启动,或从后台进入前台显示时触发。Object 参数说明:与 onLaunch 一致

4.onHide()

小程序从前台进入后台时触发。

5.onError(String error)

小程序发生脚本错误,或者 API 调用失败时触发。参数说明如下:

名称

类型

说明

error

String

错误信息,包含堆栈

6.onPageNotFound(Object)

基础库 1.9.90 开始支持,低版本需做兼容处理。小程序要打开的页面不存在时触发。Object 参数说明如下:

字段

类型

说明

path

String

不存在页面的路径

query

Object

打开不存在页面的 query

isEntryPage

Boolean

是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置的分享页面)

开发者可以在 onPageNotFound 回调中进行重定向处理,但必须在回调中同步处理,异步处理(例如 setTimeout 异步执行)无效。代码示例

小白教程网www.2d5.net

如下:

App({

  onPageNotFound(res) {

    wx.redirectTo({

      url: 'pages/...'

    }) // 如果是 tabbar 页面,请使用 wx.switchTab

  }

})

 

注意:

l  如果开发者没有添加 onPageNotFound 监听,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面。

l  如果 onPageNotFound 回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再回调 onPageNotFound

7.getApp(Object)

全局的 getApp() 函数可以用来获取到小程序 App 实例。Object 参数说明如下:

字段

类型

说明

最低版本

allowDefault

Boolean

在 App 未定义时返回默认实现。当App被调用时,默认实现中定义的属性会被覆盖合并到App中。一般用于独立分包。

2.2.4

       代码示例

小白教程网www.2d5.net

如下:

// other.js

var appInstance = getApp()

console.log(appInstance.globalData) // I am global data

 

注意:

l  不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以获取 app 实例。

l  通过 getApp() 获取实例之后,不要私自调用生命周期函数。



上一篇: 逻辑层.js脚本 下一篇: 运行机制
毕业设计网             广告联系QQ:45157718(微信同号)