Skip to content

pm-应用包管理

1. 概述

pm模块用于本地amr包的管理,包括安装、卸载amr包,获取指定/所有amr包的安装信息,监听amr包安装、卸载和升级的事件。

2. 模块使用方式

javascript
import pm from 'pm'

3.方法

3.1 installPackage

安装amr应用包(框架打包工具的后缀统一为.arm) 入参 Object 类型,属性如下:

属性类型必填描述
pathStringamr的绝对安装路径。
callbackfunction回调函数。

callback中的状态码

javascript
SUCCESS = 0,                                 /* Success */

INS_ERROR_FILE_NOT_EXIST = 2,
INS_ERROR_FAILED_INVALID_AMR = 3,

调用示例

javascript
import pm from 'pm';

pm.installPackage(path, r => {
  if (r.res === pm.SUCCESS) {
    console.log('install succeess')
  } else {
    console.log('install failed, error code: ', r.res)
  }
});

3.2 removePackage

卸载amr包 入参 Object 类型,属性如下:

属性类型必填描述
appIdString要删除的应用的appId。
callbackfunction回调函数。

callback中的状态码

javascript
SUCCESS = 0,                                 /* Success */

RM_ERROR_NOT_EXIST = 50,
RM_ERROR_NOT_ALLOWED = 51,

调用示例

javascript
import pm from 'pm';

pm.removePackage(appId, r => {
  if (r.res === pm.SUCCESS) {
    console.log('remove succeess')
  } else {
    console.log('remove failed, error code: ', r.res)
  }
});

3.3 getPackageInfo

获取指定appId的安装信息 入参 Object 类型,属性如下:

属性类型必填描述
appIdString要获取安装信息的应用的appId。

调用示例

javascript
import pm from 'pm';

let packageInfo = pm.getPackageInfo(appId);
console.log(packageInfo)

返回值

object

json
{
	"appid": "8001000000000001",
	"name": "app1",
	"version": "1.0.0",
	"icon": "",
	"installPath": "/etc/miniapp/data/mini_app/pkgs/8001000000000001/a/",
	"flag": 1
}

3.4 getInstalledPackages

获取指定appId的安装信息 入参 Object 类型,属性如下:

属性类型必填描述

调用示例

javascript
import pm from 'pm';

let packageInfos = pm.getInstalledPackages();
console.log(packageInfos)

返回值

array

json
[{
	"appid": "8001000000000001",
	"name": "app1",
	"version": "1.0.0",
	"icon": "",
	"installPath": "/etc/miniapp/data/mini_app/pkgs/8001000000000001/a/",
	"flag": 1
}, {
	"appid": "8001000000000002",
	"name": "app2",
	"version": "1.0.0",
	"icon": "",
	"installPath": "/etc/miniapp/data/mini_app/pkgs/8001000000000002/a/",
	"flag": 1
}]

3.5 package事件监听

事件类型

事件名称描述
installedamr安装事件
removedamr删除事件
updatedamr更新事件

调用示例

json
// 监听
let token = pm.on('package', r => {
    if (r.type === 'installed') {
    } else if (r.type === 'removed') {
    } else if (r.type === 'updated') {
    }
});

// 取消监听
pm.off(token);

安装失败

错误码说明
1安装失败,amr包不存在
2安装失败,amr包解析失败
3安装失败,解压失败