包管理
更新时间:
接口声明
{ "name": "blueos.package.packageManager" }
复制代码
导入模块
import packageManager from '@blueos.package.packageManager' 或 const packageManager = require('@blueos.package.packageManager')
复制代码
接口定义
hasInstalled
检测应用是否存在
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
package | String | 是 | 应用包名,如:com.vivo.music |
moduleName | string | type 为 widget 时必填 | 卡片的 moduleName,manifest 中 widget 的 key,如:widgets/widget |
type | "widget" | "package" | 否 | 默认值为 package,package 表示普通应用,widget 表示卡片 |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束后的回调 |
success 返回值
参数名 | 类型 | 说明 |
---|---|---|
result | boolean | 应用是否存在 |
示例
packageManager.hasInstalled({
package: 'com.hap.app',
moduleName: 'widgets/widget1',
type: 'widget',
success(data: { result: boolean }) {
console.log(`handling success: ${data.result}`)
},
fail(data, code) {
console.log(`handling fail, code = ${code}`)
},
})
复制代码
install
安装应用
权限
仅系统应用可用
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 安装包 uri,沙箱目录 |
type | "widget" | "package" | 否 | 默认值为 package,package 表示普通应用,widget 表示卡片 |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束后的回调 |
success 返回值
参数名 | 类型 | 说明 |
---|---|---|
result | boolean | 是否成功发起安装操作 |
示例
packageManager.install({
path: 'files://com.hap.app_widgets.widget1.rpk',
moduleName: "widgets/widget1",
type: "widget",
success(data: { result: boolean }) {
console.log(`handling success: ${data.result}`)
},
fail(data, code) {
console.log(`handling fail, code = ${code}`)
}
}
复制代码
uninstall
卸载应用
权限
仅系统应用可用
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
package | string | 是 | 指定卸载的应用包名 |
moduleName | string | type 为 widget 时必填 | 卡片的 moduleName,manifest 中 widget 的 key,如:widgets/widget |
type | "widget" | "package" | 否 | 默认值为 package,package 表示普通应用,widget 表示卡片 |
success | Function | 否 | 成功返回的回调函数 |
fail | Function | 否 | 失败的回调函数,可能会因为权限失败 |
complete | Function | 否 | 结束的回调函数(调用成功、失败都会执行) |
示例
packageManager.uninstall({
package: 'com.vivo.musicWidget',
moduleName: 'widgets/widget1',
type: 'widget',
success() {
console.log('install success')
},
fail() {
console.log('install failed')
},
})
复制代码
getInfo
获取应用版本号、版本名称信息
权限
仅系统应用可用
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
package | string | 是 | 应用包名 |
moduleName | string | type 为 widget 时必填 | 卡片的 moduleName,manifest 中 widget 的 key,如:widgets/widget |
type | "widget" | "package" | 否 | 默认值为 package,package 表示普通应用,widget 表示卡片 |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束回调 |
success 返回值
参数名 | 类型 | 说明 |
---|---|---|
package | string | 应用包名 |
moduleName | string | 卡片的 moduleName,manifest 中 widget 的 key,如:widgets/widget |
name | string | 应用名称 |
icon | string | 应用图标路径,卡片预览图 |
versionCode | number | 版本号 |
versionName | string | 版本名 |
fail 返回错误码
错误码 | 说明 |
---|---|
202 | 参数错误 |
1000 | 应用不存在 |
示例
packageManager.getInfo({
package: 'com.vivo.app',
moduleName: 'widgets/widget1',
type: 'widget',
success(data) {
console.log(`${data.versionCode}, ${data.versionName}`)
},
fail(data, code) {
console.log(`handling fail, code = ${code}`)
},
})
复制代码
getSignatureDigests
获取应用签名摘要信息
权限
仅系统应用可用
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
package | string | 是 | 应用包名 |
moduleName | string | type 为 widget 时必填 | 卡片的 moduleName,manifest 中 widget 的 key,如:widgets/widget |
type | "widget" | "package" | 否 | 默认值为 package,package 表示普通应用,widget 表示卡片 |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
complete | Function | 否 | 执行结束回调 |
success 返回值:
参数名 | 类型 | 说明 |
---|---|---|
signatureDigests | Array | 签名摘要信息列表,使用 SHA-256 |
fail 返回错误码:
错误码 | 说明 |
---|---|
202 | 参数错误 |
1000 | 应用不存在 |
示例:
packageManager.getSignatureDigests({
package: 'com.vivo.app',
moduleName: 'widgets/widget1',
type: 'widget',
success(data) {},
fail(data, code) {
console.log(`handling fail, code = ${code}`)
},
})
复制代码
getInstalledPackages
获取当前已安装的应用列表信息
权限
仅系统应用可用
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | Function | 否 | 成功返回的回调函数 |
fail | Function | 否 | 失败的回调函数,可能会因为权限失败 |
complete | Function | 否 | 结束的回调函数(调用成功、失败都会执行) |
success 返回值
参数名 | 类型 | 说明 |
---|---|---|
packages | Object[] | 已安装的应用信息 package 列表 |
package 返回值
参数名 | 类型 | 说明 |
---|---|---|
package | string | 应用包名 |
name | string | 应用名称 |
icon | string | 应用图标路径 |
versionName | string | 版本名称 |
versionCode | string | 版本号 |
示例
packageManager.getInstalledPackages({
success: function (data) {
data.packages.forEach((packages) => {
console.log(JSON.stringify(packages))
})
},
fail: function (err, code) {
console.log(JSON.stringify(err))
},
})
复制代码
getInstalledWidgets
获取已安装的卡片列表
权限
仅系统应用可用
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
success | (data: { packages:Widget[] }) => void | 否 | 成功返回的回调函数 |
fail | Function | 否 | 失败的回调函数,可能会因为权限失败 |
complete | Function | 否 | 结束的回调函数(调用成功、失败都会执行) |
Widget
属性 | 类型 | 说明 |
---|---|---|
package | string | 包名 |
moduleName | string | 卡片模块名 |
type | "js" |"lite" | 卡片类型 |
name | string | 卡片名称,支持多语言 |
description | string | 卡片描述, 支持多语言 |
minPlatformVersion | number | 支撑的最小平台版本号 |
refreshDuration | number | 表示定时数据刷新间隔,以秒为单位 |
scheduledRefreshTime | Time[] | 表示卡片的定点刷新的时刻,采用 24 小时制,精确到分钟,如["10:30", "21:30"] |
sizes | Size[] | 卡片尺寸 |
deviceTypeList | DeviceType[] | 卡片支持的设备类型 |
previewImages | PreviewImage[] | 卡片预览图 |
示例
packageManager.getInstalledWidgets({
success(data) {
data.packages.forEach((widget) => {
console.log(widget)
})
},
fail() {
console.log('getInstalledList failed')
},
})
复制代码
getAppCategory
同步获取应用分类
权限
仅系统应用可用
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
package | string | 是 | 应用包名 |
返回值
参数名 | 类型 | 说明 |
---|---|---|
appCategory | Array<string> | 应用所属类别,详见上文应用分类 |
示例
const appCategory = packageManager.getAppCategory('com.vivo.app')
复制代码
getAppCategoryAsync
异步获取应用分类
权限
仅系统应用可用
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
package | string | 是 | 应用包名 |
success | Function | 否 | 成功回调 |
fail | Function | 否 | 失败回调 |
success 返回值
参数名 | 类型 | 说明 |
---|---|---|
appCategory | Array<string> | 应用所属类别,详见上文应用分类 |
fail 返回错误码
错误码 | 说明 |
---|---|
1000 | 应用不存在 |
示例
packageManager.getAppCategoryAsync({
package: 'com.vivo.app',
success: function (data) {
console.log(`handling success: ${data.appCategory}`)
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
},
})
复制代码