资讯动态

微信小程序分包加载功能

日期:2018-06-15 作者:管理员 来源:本站

随着微信小程序和微信小游戏的玩法越来越丰富,微信小程序开发者对于扩大包大小的需求越来越强烈,所以微信官方团队推出了小游戏分包加载这个功能。所谓的微信小程序分包加载,即把游戏内容按一定规则拆分这几包,在首次启动时先下载必要的包,这个必要的包称之为「主包」,微信小程序开发者可以在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。目前微信小程序分包加载大小的限制为: 整个小游戏所有分包大小不超过 8M和单个分包/主包大小不能超过 4M。

微信小程序分包加载功能

微信小程序分包加载功能


微信小程序分包加载的使用方法

1. 分包配置

需要先在 game.json 配置分包信息。

假设游戏的目录结构如下:

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

game.json 中的配置:

{
  ...
  subpackages: [
    {
      name: 'stage1',
      root: 'stage1/' // 可以指定一个目录,目录根目录下的 game.js 会作为入口文件,目录下所有资源将会统一打包
    }, {
      name: 'stage2',
      root: 'stage2.js' // 也可以指定一个 JS 文件
    }
  ]
  ...
}

配置在 subpackages 字段内的目录或 js 文件,将按照配置打包成一个个「分包」,没有配置在 subpackages 中的目录和 js,将会被打包到主包中。

2. 分包加载

我们提供了 wx.loadSubpackage() API 来触发分包的下载,调用 wx.loadSubpackage 后,将触发分包的下载与加载,在加载完成后,通过 wx.loadSubpackage 的 success 回调来通知加载完成。

同时,wx.loadSubpackage 会返回一个 LoadSubpackageTask,可以通过 LoadSubpackageTask 获取当前下载进度。

示例代码:

const loadTask = wx.loadSubpackage({
  name: 'stage1', // name 可以填 name 或者 root success: function(res) { // 分包加载成功后通过 success 回调 },
  fail: function(res) { // 分包加载失败通过 fail 回调 }
})

loadTask.onProgressUpdate(res => { console.log('下载进度', res.progress) console.log('已经下载的数据长度', res.totalBytesWritten) console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})

老版本兼容

由微信后台编译来处理旧版本客户端的兼容,后台会编译两份代码包,一份是分包后代码,另外一份是整包的兼容代码。对于老客户端,会去下载整包代码启动。

开发者在基础库 2.1.0 以下的版本不需要调用 wx.loadSubpackage 触发加载,2.1.0 以下版本不存在 wx.loadSubpackage 方法。

已知 BUG

目前 Android 无法加载分包下的字体文件,预计在下个微信客户端版本修复。


LoadSubpackageTask wx.loadSubpackage(Object object)

基础库 2.1.0 开始支持,低版本需做兼容处理

触发分包加载,详见 分包加载

参数

Object object
属性 类型 默认值 是否必填 说明 支持版本
name function
分包的名字,可以填 name 或者 root
success function
分包加载成功回调事件
fail function
分包加载失败回调事件
complete function
分包加载结束回调事件(加载成功、失败都会执行)

返回值

LoadSubpackageTask

加载分包任务实例,用于获取分包加载状态


LoadSubpackageTask.onProgressUpdate(function callback)

基础库 2.1.0 开始支持,低版本需做兼容处理

监听分包加载进度变化事件

参数

callback

监听事件的回调函数

callback 回调函数

参数
res
属性 类型 说明 支持版本
progress number 分包下载进度百分比
totalBytesWritten number 已经下载的数据长度,单位 Bytes
totalBytesExpectedToWrite number 预期需要下载的数据总长度,单位 Bytes



二维码
扫二维码手机查看该文章
TAG标签    小程序 分包加载
当前网址:http://y8v9c0.xueerya.cn/wechat/567.html

相关资讯


Copyright © 2007-2024 珠海市网讯互联信息科技有限公司 y8v9c0.xueerya.cn 版权所有
粤公网安备44040202000391号 粤ICP备19117377号 网站地图 站点地图
在线客服
永久免费的黄页网站4188幼女网站链接链接