@heybox/hb-sdk API Reference - v0.9.5
    正在准备搜索索引...

    函数 isManagedMiniProgramRuntimePermissionKey

    • 判断字符串是否是当前协议目录管理的 canonical runtime permission key。

      参数

      • key: string

        已确认类型为 string 的候选权限 key;若输入来自 unknown 边界,调用方须先完成字符串检查。

      返回 key is
          | "network"
          | "storage"
          | "workspaceCards"
          | "userInfo"
          | "steamLibrary"
          | "share"
          | "cloud_storage"
          | "gameSaves"
          | "filesystem"
          | "media"
          | "clipboard"
          | "leaderboard"
          | "companion"
          | "appProtocol"

      与 MINI_PROGRAM_PERMISSION_KEYS 中某项精确相等时返回 true,并将 TypeScript 类型收窄为 MiniProgramPermissionKey;未知、历史或格式不同的字符串返回 false。

      当前 canonical key 集合固定为:

      • userInfo
      • steamLibrary
      • share
      • storage
      • cloud_storage
      • filesystem
      • clipboard
      • leaderboard
      • network
      • companion

      匹配大小写敏感且按原字符串执行。该 guard 不 trim,因此 ' network ' 返回 false;历史权限 key network.request 也返回 false,即使同名 capability method 仍是公开 method。消费完整 schema v1 权限快照时 应使用 parseMiniProgramRuntimePermissions,由解析边界统一 trim,并把历史 network.request 归一为 canonical network。未知的 future key 同样返回 false;本 guard 不负责 parser 的前向兼容忽略策略。

      类型谓词只把字符串收窄为 MiniProgramPermissionKey union,不读取权限 entry、status 或 config,也不检查 Manifest。返回 true 不表示权限已声明、平台已批准、Runtime snapshot 中存在、status 为 enabled、Host 支持, 或当前 capability 已获准执行。尤其 network 与 companion 还需要平台批准;其他 declaration 权限也继续受 各自适用的 Host、用户授权、可信手势、参数与业务策略约束。

      MINI_PROGRAM_PERMISSION_CATALOG 提供每个 key 的展示信息、access、风险、配置字段和 method 集合;具体 bridge method 是否要求某项权限应以 MINI_PROGRAM_PROTOCOL_CAPABILITIES 的 requirement 为准。kind: 'none' 的 method 不会因为某个 key 被本 guard 识别而新增权限要求。

      import { isManagedMiniProgramRuntimePermissionKey } from '@heybox/hb-sdk/protocol';

      function acceptPermissionKey(candidate: unknown) {
      if (typeof candidate !== 'string') return undefined;
      return isManagedMiniProgramRuntimePermissionKey(candidate) ? candidate : undefined;
      }

      acceptPermissionKey('filesystem'); // 'filesystem'
      acceptPermissionKey('network'); // 'network'
      acceptPermissionKey(' network '); // undefined:guard 不 trim
      acceptPermissionKey('network.request'); // undefined:legacy key 只由 snapshot parser 归一化

      0.6.4