分包加载

让开发者在开发完成后,能够按照分包配置将需要分包的文件夹内的 js 或者某个 js, 打包签名生成 .rpk 文件;将项目中分包之外的其他文件打包成主包;再将整个包打成 .rpk 文件。

1. 分包配置

在 manifest.json 中新增如下配置:

{
  ...
  "subpackages": [
    {
      "name": "stage1",
      "root": "stage1/" // 可以指定一个目录,目录下所有js将会统一打包
    }, {
      "name": "stage2",
      "root": "stage2.js" // 也可以指定一个 JS 文件
    }
  ]
  ...
}

配置在 subpackages 字段内的目录,将按照配置打包成一个个「分包」,没有配置在 subpackages 中的目录,将会被打包到主包中。分包通过 quickgame subpack 命令来打包,工具使用详情见 安装和配置

LoadSubpackageTask qg.loadSubpackage(object)

加载游戏子包。注意:主包或子包不能引用未加载的包中的模块。

参数

object

属性 类型 是否必填 说明
name string 分包的名字,需要和分包配置中的值对应
success function 接口调用成功的回调函
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(无论成功失败都会执行)

返回值

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


LoadSubpackageTask.onProgressUpdate(callback)

用于获取分包加载状态

参数

Function callback,回调方法

callback(res)

res

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


示例代码:

var subTask = qg.loadSubpackage({
    // manifest.json中配置的子包包名
    name:"sub1",
    // 子包加载成功回调
    success:function(){
        console.log("sub1 子包加载成功");
    }
})
subTask.onProgressUpdate(function(res){
    // 加载进度百分比
    var progress = res["progress"];
    // 下载数据
    var totalBytesWritten = res["totalBytesWritten"];
    // 总长度
    var totalBytesExpectedToWrite = res["totalBytesExpectedToWrite"];
})
© 2020 OPPO. All rights reserved.

results matching ""

    No results matching ""