<!--
source: https://blueos.niceshare.site/api/system/package/
site: 蓝河文档馆
summary: 包管理 — 蓝河文档馆 BlueOS 开发文档
-->
---
title: '包管理'
description: '```json'
lastUpdated: 2025-10-09T03:25:10.000Z
---

## 接口声明

```json
{ "name": "blueos.package.packageManager" }
```

## 导入模块

```ts
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 | 应用是否存在 |

#### 示例

```ts
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}`)
  },
})
```

### getCustomData()

读取当前应用在 manifest 中定义的 customData

#### 参数：

| 参数名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| success | Function | 否 | 成功回调 |
| fail | Function | 否 | 失败回调 |

##### success 返回值：

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| data | Record<string, string> | 开发者在 manifest 中定义的 customData |

#### 示例：

```ts
packageManager.getCustomData({
  success(response) {
    console.log(`handling success: ${response.data}`)
  },
  fail(data, code) {
    console.log(`handling fail, code = ${code}`)
  },
})
```
