codecamp

QQ小程序 运行机制

小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」。 假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动;冷启动指的是用户首次打开或小程序被QQ主动销毁后再次打开的情况,此时小程序需要重新加载启动。

更新机制

小程序启动会有两种情况,一种是「冷启动」,一种是「热启动」。 假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,只需将后台态的小程序切换到前台,这个过程就是热启动;冷启动指的是用户首次打开或小程序被QQ主动销毁后再次打开的情况,此时小程序需要重新加载启动。

运行机制

  • 小程序没有重启的概念
  • 当小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间后(目前是5分钟)会被QQ主动销毁
  • 在 iOS 上,当QQ客户端在一定时间间隔内(目前是 5 秒)连续收到两次及以上系统内存告警时,会主动进行小程序的销毁,并提示用户 「该小程序可能导致QQ响应变慢被终止」。建议小程序在必要时使用 qq.onMemoryWarning 监听内存告警事件,进行必要的内存清理。

再次打开逻辑

用户打开小程序的预期有以下两类场景: A. 打开首页: 场景值有以下几项:

场景值ID 说明
1001 发现栏小程序主入口,「最近使用」列表
1019 QQ钱包
1022 聊天顶部置顶小程序入口
1023 安卓系统桌面图标
1038 从另一个小程序返回
1056 音乐播放器菜单

B. 打开小程序指定的某个页面: 场景值为除 A 以外的其他 当再次打开一个小程序逻辑如下:

上一次的场景 当前打开的场景 效果
A A 保留原来的状态
B A 清空原来的页面栈,打开首页(相当于执行 qq.reLaunch 到首页)
A 或 B B 清空原来的页面栈,打开指定页面(相当于执行 qq.reLaunch 到指定页)
QQ小程序 小程序的运行环境
QQ小程序 性能
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

QQ小程序 开发

硬件能力

QQ小程序 云开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }