工作日记

微信小游戏

1.包大小限制:代码包总大小不能超过 8M,单个分包不能超过 4M


2.微信音效自带的游戏音乐切入后台后中断,切回前台不会播放,需要在前台事件中手动去回复播放
中断事件也是一样,在中断结束的事件回调中去回复(接到电话、闹钟响起、系统提醒、收到微信好友的语音/视频通话请求)
(游戏采用cocos音效,这里应该用不到,可以观察到时候是否影响到cocos的音效播放)

3.初始包尽量小,在初始页去down其他分包,这样避免了主包大小


4.本地缓存文件和本地用户文件的清理时机跟代码包一样,只有在代码包被清理的时会被清理。(版本号?)
  在本地用户文件目录下创建一个文件 hello.txt,写入内容 "hello, world"
    const fs = wx.getFileSystemManager()
    fs.writeFileSync(`${wx.env.USER_DATA_PATH}/hello.txt`, 'hello, world', 'utf8')


5.分包;微信 6.6.7 客户端,2.1.0 及以上基础库开始支持)
  需要先在 game.json 配置分包信息。

        ├── game.js
        ├── game.json
        ├── images
        │   ├── a.png
        │   ├── b.png
        ├── stage1
        │   └── game.js
        │   └── images
        │       ├── 1.png
        │       ├── 2.png
        └── stage2.js

6.小程序运行机制(小程序没有重启的概念。)
  热启动:假如用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时无需重新启动,
    只需将后台态的小程序切换到前台,这个过程就是热启动;
  冷启动:用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动,即冷启动。

  前台/后台状态
  当用户点击右上角胶囊按钮关闭小程序,或者按了设备 Home 键离开微信时,小程序并没有直接销毁,而是进入了后台状态;
  当用户再次进入微信或再次打开小程序,小程序又会从后台进入前台。

  小程序销毁
  需要注意的是:只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

  当小程序进入后台,客户端会维持一段时间的运行状态,超过一定时间后(目前是5分钟)小程序会被微信主动销毁。
  当小程序占用系统资源过高,可能会被系统销毁或被微信客户端主动回收。
  在 iOS 上,当微信客户端在一定时间间隔内(目前是 5 秒)连续收到两次及以上系统内存告警时,会主动进行小程序的销毁,并提示用户 「该小程    序可能导致微信响应变慢被终止」。
  建议小程序在必要时使用 wx.onMemoryWarning 监听内存告警事件,进行必要的内存清理。
  (基础库 1.1.0 及以上,1.4.0 以下版本: 当用户从扫一扫、转发等入口(场景值为1007, 1008, 1011, 1025)进入小程序,
    且没有置顶小程序的情况下退出,小程序会被销毁)  强制更新应用新版本
     

const updateManager = wx.getUpdateManager()

         updateManager.onCheckForUpdate(function (res) {
            // 请求完新版本信息的回调
            console.log(res.hasUpdate)
        })

        updateManager.onUpdateReady(function () {
            wx.showModal({
                title: '更新提示',
                content: '新版本已经准备好,是否重启应用?',
                success: function (res) {
                    if (res.confirm) {
                        // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
                        updateManager.applyUpdate()
                    }
                }
            })
        })

        updateManager.onUpdateFailed(function () {
            // 新版本下载失败
        })

// 创建一个msg.length * 2 + 2的大小的ArrayBuffer
// 字符串转为ArrayBuffer对象,参数为字符串; var buf = new ArrayBuffer(str.length*2); 每个字符占用2个字节
var buffer = new ArrayBuffer(msg.length * 2 + 2);

// 创建一个指向b的Int16视图,开始于字节0,长度为2
var v1 = new Int16Array(buffer, 0, 2);

// 将类型化数组的set方法用于复制数组,也就是将一段内容完全复制到另一段内存
// 将msgType复制到v1中 
//*******将消息头(协议)放到了开头
v1.set(msgType);

// 获取protobufMsg的字节大小
var pbstr = protobufClass.encode(protobufMsg).finish();

// 创建一个指向b的Uint8视图,开始于字节2
var v2 = new Uint8Array(buffer, 2);

// 将pbstr复制到v2中
//*******将消息结构体内容(协议)放到了剩余位置
v2.set(pbstr);

// 发送消息buffer
this.__socket.send(buffer);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值