# @ankhorage/permissions 中文文档

规范地址：https://npmcn.com/package/%40ankhorage/permissions/

版本：0\.3\.13
npm 元数据更新时间：2026-11-04T22:43:18.570Z
中文译文更新时间：2026-11-06T05:11:04.324Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ankhorage/permissions
原文对照：https://npmcn.com/package/%40ankhorage/permissions/?lang=original
项目主页：https://github.com/ankhorage/permissions#readme
源码仓库：https://github.com/ankhorage/permissions

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：292 kB，136 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：react \>=18\.2\.0 \|\| \>=19\.0\.0
- 首次发布：2026-06-08T20:02:02.270Z
- 最新版本发布：2026-11-04T22:43:18.191Z
- 近 30 天下载量：10043（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：81（近 12 个月 81 个）

## 中文简介

跨平台权限注册和运行时间辅助器用于"博览会","回放原生","回放原生"等网络应用,对相机,媒体,位置,通知,麦克风等网络/本土功能进行统一请求/检查API.

## 安装

```sh
npm install @ankhorage/permissions
```

也可以使用：`pnpm add @ankhorage/permissions`、`yarn add @ankhorage/permissions`、`bun add @ankhorage/permissions`

## README

# 意见

![license: MIT](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/license.svg) ![npm: v0.3.13](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/npm.svg) ![runtime: bun](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/runtime.svg) ![typescript: strict](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/typescript.svg) ![eslint: checked](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/eslint.svg) ![prettier: checked](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/prettier.svg) ![build: checked](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/build.svg) ![tests: checked](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/tests.svg) ![paradox: canonical](https://npmcn.com/package/%40ankhorage/permissions/paradox/badges/docs.svg)

跨平台权限注册和运行时间辅助器用于"博览会","回放原生","回放原生"等网络应用,对相机,媒体,位置,通知,麦克风等网络/本土功能进行统一请求/检查API.

## 使用量

### 国 际

Ankhorage 包通过命令行界面曝光 `ankh`启用 `ankh --help` 来发现可用的软件包命令,或用 `--help` 用于特定软件包.

```zsh
# Install the Ankhorage CLI
bun add --global @ankhorage/ankh

# Show usage information for permissions
ankh permissions --help
```

### 基本权限

基本权限运行时实例 .

创建权限客户端, 在应用根提供, 并使用 `usePermission` 以读取、刷新和请求正常的许可状态.

```tsx
export default function BasicPermissionsExample() {
  return (
    <PermissionsProvider client={permissionClient}>
      <CameraPermissionExample />
    </PermissionsProvider>
  );
}
```

此套件包含一个额外的示例 。 见生成的整套文档 .

## 生成的文件

-   [交互式文件应用](https://npmcn.com/package/%40ankhorage/permissions/paradox/index.html)
-   [公共 API 参考](https://npmcn.com/package/%40ankhorage/permissions/paradox/exports.md)
-   [构成部分登记册](https://npmcn.com/package/%40ankhorage/permissions/paradox/components.md)
-   [结构概览](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/architecture-overview.mmd)
-   [模块关系](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/module-relationships.mmd)
-   [导出图](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/export-graph.mmd)
-   [坚持已知序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/assert-known-permission.mmd)
-   [创建 FakePermission 序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/create-fake-permission-client.mmd)
-   [创建WebPermission 序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/create-web-permission-client.mmd)
-   [获取定义序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/get-permission-definition.mmd)
-   [正常状态序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/normalize-permission-state.mmd)
-   [权限提供序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/permissions-provider.mmd)
-   [使用许可序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/use-permission.mmd)
-   [使用许可序列](https://npmcn.com/package/%40ankhorage/permissions/paradox/diagrams/sequences/use-permissions.mmd)

## 公共 API

### 公用事业

创建假任务客户端

```ts
createFakePermissionClient(options?: FakePermissionClientOptions) => FakePermissionClient
```

创建用于测试和实例的决定性的记忆内客户端.

假客户端使权限流可以在没有本地设备的情况下进行测试,浏览器 提示、模拟器或网络访问.

模块 : `src/testing/index.ts` 资料来源: `src/testing/index.ts:61:1` 相关符号 : `FakePermissionClient`, (中文(简体) ), `FakePermissionClientOptions`

创建许可客户端

```ts
createPermissionClient() => PermissionClient
```

创建由 Expo SDK 模块支持的授权客户端 .

否认博览会无法再次要求的,将归正为 `blocked`有限 媒体图书馆访问和临时或电子iOS通知访问 已正常化为可用 `limited` 状态,在 `granted` 事实依然如此. 客户要求 `expo-linking` 设置恢复和拒绝 无法打开操作系统设置页面时的稳定出错.

博览会模块只有在客户端操作使用时才会被加载. 包裹 root 和 Expo 显示的元数据仍然没有本地模块导入.

模块 : `src/expo/client.ts` 资料来源: `src/expo/client.ts:38:1` 相关符号 : `PermissionClient`

创建许可管理器

```ts
createPermissionManager(client: PermissionClient) => PermissionManager
```

从运行时间特定客户端创建权限管理器 .

管理者验证许可名称并规范客户端结果. 原生应用配置仍然是单独的构建时间关注.

模块 : `src/manager/createPermissionManager.ts` 资料来源: `src/manager/createPermissionManager.ts:21:1` 相关符号 : `PermissionClient`, (中文(简体) ), `PermissionManager`

创建网络许可客户端

```ts
createWebPermissionClient(options?: WebPermissionClientOptions) => PermissionClient
```

使用被守护的结构全域创建浏览器权限客户端 .

不支持的网络 API 解析为 `status: 'unavailable'`。适配器不会 导入 DOM 类型,而不假设它在浏览器中运行.

模块 : `src/web/index.ts` 资料来源: `src/web/index.ts:80:1` 相关符号 : `PermissionClient`, (中文(简体) ), `WebPermissionClientOptions`

权限

由登记处支持的常见运行时间权限 .

该登记册是有意的平台中立的。 适配器每个翻译 允许进入浏览器、 React Introduct 应用程序、 Expo 应用程序或测试 环境实际上可以检查或请求.

模块 : `src/registry/permissions.ts` 资料来源: `src/registry/permissions.ts:9:1`

权限提供

```ts
PermissionsProvider({
  children,
  client,
  manager,
}: PermissionsProviderProps) => ReactNode
```

提供权限管理器以回放钩.

反应帮助器是框架中立的. 他们只依靠反应而不依靠 导入浏览器、 Expo 或 React Introduction 权限 API.

相关类型 : `PermissionsProviderProps`

道具

| Prop | 类型 | 需求 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| 儿童 | `ReactNode | undefined` | 没有 | —— 说 |  |
| 客户端 | `PermissionClient | undefined` | 没有 | —— 说 |  |
| 管理器 | `PermissionManager | undefined` | 没有 | —— 说 |  |

## 常见问题

### @ankhorage/permissions 是什么？

跨平台权限注册和运行时间辅助器用于"博览会","回放原生","回放原生"等网络应用,对相机,媒体,位置,通知,麦克风等网络/本土功能进行统一请求/检查API\.

### 如何安装 @ankhorage/permissions？

在项目目录运行 npm install @ankhorage/permissions，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=18\.2\.0 \|\| \>=19\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @ankhorage/permissions 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ankhorage/permissions 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ankhorage/permissions 可以商用吗？

@ankhorage/permissions 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @ankhorage/permissions 的下载量有多少？

根据 npm 官方下载统计，@ankhorage/permissions 在 2026/10/06 – 2026/11/04 这 30 天内被下载 10,043 次，日均约 335 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ankhorage/permissions 还在维护吗？

最新版本 0\.3\.13 发布于 2026/11/05（1 天前）；至今共发布 81 个版本，其中过去 12 个月发布了 81 个；首次发布于 2026/06/09。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

