包管理

更新时间:

接口声明

{ "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}`)
  },
})
复制代码
上一篇
生命周期