For the complete documentation index, see llms.txt. This page is also available as Markdown.

权限

提供设备权限(剪贴板·联系人·相册·摄像头·麦克风·位置)的查询·请求功能和权限错误类。

API 列表

API
说明

getPermission

查询权限的当前状态

requestPermission

请求权限并返回结果

openPermissionDialog

弹出权限设置对话框

权限错误类 7 种(OpenCameraPermissionError 等也一并提供——当需要权限的 API 被拒绝时,这些类的实例会被抛出。

withPermission

功能说明

包装需要权限的函数。调用被包装的函数时会先请求对应权限,若被拒绝则 errorClass传入的错误被抛出,允许时执行原函数。

返回的函数还会附带查询同一权限的 getPermission()和再次请求权限的 openPermissionDialog()作为静态方法。框架内部的 Clipboard.getText, Device.getPhotos 同样 API 是通过这个函数创建的,因此可以以 Clipboard.getText.getPermission() 这种形式检查权限。

类型

Params

function withPermission<T extends (...args: any[]) => any>(
  fn: T, // 要在权限被允许后执行的函数
  name: PermissionName, // 要请求的权限名称
  access: PermissionAccess, // 要请求的访问类型
  errorClass: new () => PermissionErrorType, // 权限被拒绝时要抛出的错误类
): PermissionFunctionWithDialog<T>;

Response

错误

代码
说明

errorClass传入的错误

权限请求结果为 denied的情况。

示例代码

PermissionError

功能说明

权限错误的公共父类。需要一次处理多个权限错误时 error instanceof PermissionError即可确认。 name`${methodName} permission error` 格式。

类型

Params

Response

示例代码

GetClipboardTextPermissionError

功能说明

在读取剪贴板权限被拒绝时发生的错误。 error instanceof GetClipboardTextPermissionError即可确认。 PermissionError继承自

类型

示例代码

SetClipboardTextPermissionError

功能说明

在剪贴板写入权限被拒绝时发生的错误。 error instanceof SetClipboardTextPermissionError即可确认。 PermissionError继承自

类型

示例代码

FetchContactsPermissionError

功能说明

在联系人权限被拒绝时发生的错误。 error instanceof FetchContactsPermissionError即可确认。 PermissionError继承自

类型

示例代码

FetchAlbumPhotosPermissionError

功能说明

在相册权限被拒绝时发生的错误。 error instanceof FetchAlbumPhotosPermissionError即可确认。 PermissionError继承自

类型

示例代码

GetCurrentLocationPermissionError

功能说明

在位置权限被拒绝时发生的错误。 error instanceof GetCurrentLocationPermissionError即可确认。 PermissionError继承自

类型

示例代码

StartUpdateLocationPermissionError

功能说明

在位置更新权限被拒绝时发生的错误。 GetCurrentLocationPermissionError因为它是指向相同类的别名, error instanceof StartUpdateLocationPermissionErrorGetCurrentLocationPermissionError 在实例上也 true

类型

示例代码

OpenCameraPermissionError

功能说明

在摄像头权限被拒绝时发生的错误。 error instanceof OpenCameraPermissionError即可确认。 PermissionError继承自

类型

示例代码

PermissionName

功能说明

用于识别权限的名称类型。

类型

PermissionAccess

功能说明

权限的访问类型。 read/write用于剪贴板·联系人·相册这类区分读/写的权限, access用于位置·摄像头·麦克风这类没有区分的权限。

类型

PermissionStatus

功能说明

权限状态类型。 notDetermined是用户尚未对权限请求作出回应的状态。

类型

PermissionFunctionName

功能说明

发生权限错误的函数名称类型。 PermissionErrorname用于构成时。

类型

PermissionErrorConstructorParams

功能说明

PermissionError 传入构造函数的参数类型。

类型

PermissionErrorType

功能说明

withPermissionerrorClass 参数生成的错误实例的形态。

类型

GetPermissionFunction

功能说明

withPermission被 `withPermission` 包装的函数上附带的 getPermission 静态方法签名。

类型

PermissionDialogFunction

功能说明

withPermission被 `withPermission` 包装的函数上附带的 openPermissionDialog 静态方法签名。

类型

PermissionFunctionWithDialog

功能说明

withPermission所返回的函数类型。是原函数签名上 getPermission/openPermissionDialog 加上静态方法的形式。

类型

这有帮助吗?