小程序逻辑层之注册程序和场景值

2024-06-06 23:48

本文主要是介绍小程序逻辑层之注册程序和场景值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小程序学习(三)小程序逻辑层之注册程序和场景值

 之前学习了小程序的基本架构和文件的类型,然后再参照官方的Dome,对小程序也有了一些了解。下面了解一下小程序框架的逻辑层。

 

小程序的逻辑层主要包含以下几个点:

1、注册程序

2、场景值

3、注册页面

4、路由

5、模块化

6、API

 

一、注册程序

App() 函数用来注册一个小程序。接受一个 object参数,其指定小程序的生命周期函数等。这个在上一篇中有写到,在全局的 app.js 文件中。

ojbect的常用参数有:

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

 

 

 

 

 

 

 

 

 

 

 

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

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

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

复制代码

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'
})

复制代码

 

这里面需要着重说明的是 onLaunch 和 onShow 两 个函数

onLaunch, onShow 参数:

字段类型说明
pathString打开小程序的路径
queryObject打开小程序的query
sceneNumber打开小程序的场景值
shareTicketStringshareTicket,详见 获取更多转发信息
referrerInfoObject当场景为由从另一个小程序或公众号或App打开时,返回此字段
referrerInfo.appIdString来源小程序或公众号或App的 appId,详见下方说明
referrerInfo.extraDataObject来源小程序传过来的数据,scene=1037或1038时支持


这里的场景值下面会说到,在指定的场景值下,referrerInfo会传递数据

 

GetApp()

全局的 getApp() 函数可以用来获取到小程序实例

// other.js
var appInstance = getApp()
console.log(appInstance.globalData) // I am global data//在页面的js文件中,可以获取小程序的实例,然后通过实例对象获取定义的全局变量

 

 

需要注意几点:

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

 

二、场景值

当前支持的场景值有:

场景值ID说明
1001发现栏小程序主入口
1005顶部搜索框的搜索结果页
1006发现栏小程序主入口搜索框的搜索结果页
1007单人聊天会话中的小程序消息卡片
1008群聊会话中的小程序消息卡片
1011扫描二维码
1012长按图片识别二维码
1013手机相册选取二维码
1014小程序模版消息
1017前往体验版的入口页
1019微信钱包
1020公众号 profile 页相关小程序列表
1022聊天顶部置顶小程序入口
1023安卓系统桌面图标
1024小程序 profile 页
1025扫描一维码
1026附近小程序列表
1027顶部搜索框搜索结果页“使用过的小程序”列表
1028我的卡包
1029卡券详情页
1031长按图片识别一维码
1032手机相册选取一维码
1034微信支付完成页
1035公众号自定义菜单
1036App 分享消息卡片
1037小程序打开小程序
1038从另一个小程序返回
1039摇电视
1042添加好友搜索框的搜索结果页
1043公众号模板消息
1044带 shareTicket 的小程序消息卡片(详情)
1047扫描小程序码
1048长按图片识别小程序码
1049手机相册选取小程序码
1052卡券的适用门店列表
1053搜一搜的结果页
1054顶部搜索框小程序快捷入口
1056音乐播放器菜单
1058公众号文章
1059体验版小程序绑定邀请页
1064微信连Wifi状态栏
1067公众号文章广告
1068附近小程序列表广告
1072二维码收款页面
1073客服消息列表下发的小程序消息卡片
1074公众号会话下发的小程序消息卡片

 

上面有说到 onLoauch 和 onShow函数,场景值主要是通过这两个函数来传递。

其中只有在传递 1020、1035、1036、1037、1038、1043 这几个场景值时,才会返回referrerInfo.appId

 

通过这些场景值,可以方便我们统计小程序访问的来源。在后面针对某些功能做营销时,能够轻松的获得有价值的数据。

这篇关于小程序逻辑层之注册程序和场景值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1037579

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

SpringBoot中四种AOP实战应用场景及代码实现

《SpringBoot中四种AOP实战应用场景及代码实现》面向切面编程(AOP)是Spring框架的核心功能之一,它通过预编译和运行期动态代理实现程序功能的统一维护,在SpringBoot应用中,AO... 目录引言场景一:日志记录与性能监控业务需求实现方案使用示例扩展:MDC实现请求跟踪场景二:权限控制与

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件