@heybox/hb-sdk 0.9.1-alpha.4 → 0.9.1-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -2
- package/README.md +33 -0
- package/dist/card-controller.cjs.js +194 -0
- package/dist/card-controller.esm.js +159 -0
- package/dist/cli-chunks/browser-DUdEZCyq.cjs +15 -0
- package/dist/cli-chunks/{build-BZg2rHkW.cjs → build-DYYWRiaY.cjs} +22 -10
- package/dist/cli-chunks/{context-YrzmEOau.cjs → context-Bo4L-Cx_.cjs} +12 -12
- package/dist/cli-chunks/{create-fPvlqLbS.cjs → create-CKC4yp0J.cjs} +12 -5
- package/dist/cli-chunks/{dev-X8_kbp78.cjs → dev-BMX6UXUe.cjs} +58 -13
- package/dist/cli-chunks/{doctor-DdiucYs9.cjs → doctor-DqEYRo4I.cjs} +13 -6
- package/dist/cli-chunks/{index-BdbwsefW.cjs → index-DmCWB_hF.cjs} +4 -7
- package/dist/cli-chunks/{index-BGh-Izf8.cjs → index-J4uQvKT_.cjs} +8780 -4464
- package/dist/cli-chunks/{index.esm-WYIrPjkF.cjs → index.esm-eNPTDv6W.cjs} +18 -19
- package/dist/cli-chunks/{login-DWmNuhWc.cjs → login-BL2OE6r9.cjs} +32 -33
- package/dist/cli-chunks/{project-vite-BVDIeoHB.cjs → project-vite-Du1m7Y_3.cjs} +1 -1
- package/dist/cli-chunks/{remote-BHJFxXyc.cjs → remote-ZHJUtx6l.cjs} +49 -38
- package/dist/cli-chunks/runtime-gate-DedD3ynE.cjs +201950 -0
- package/dist/cli-chunks/{runtime-permission-env-eiq8vE62.cjs → runtime-permission-env-DWaPlchd.cjs} +9396 -2929
- package/dist/cli-chunks/{skill-DC3cfPj2.cjs → skill-D4z_a_BH.cjs} +14 -7
- package/dist/cli-chunks/{version-DYFkOykv.cjs → version-tzrFwpkl.cjs} +1 -1
- package/dist/cli.cjs +14 -6
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-BL1URvGR.js +102 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-CZsodKbP.js → desktop-app-launch-D6QZYpUq.js} +3 -3
- package/dist/devtools/browser-dev-host/assets/{index-B9tOX3zG.js → index-Bqsp608m.js} +4 -4
- package/dist/devtools/browser-dev-host/index.html +2 -2
- package/dist/index.cjs.js +6224 -275
- package/dist/index.esm.js +6224 -276
- package/dist/miniapp-publish.cjs.js +6612 -168
- package/dist/miniapp-publish.esm.js +6612 -169
- package/dist/protocol.cjs.js +5805 -0
- package/dist/protocol.esm.js +5805 -0
- package/dist/vite.cjs.js +7475 -217
- package/dist/vite.esm.js +7474 -218
- package/dist/workspace-card-build-sandbox-worker.mjs +72 -0
- package/package.json +25 -11
- package/skill/SKILL.md +15 -0
- package/skill/skill.json +5 -5
- package/types/card-controller.d.ts +3682 -0
- package/types/index.d.ts +7532 -35
- package/types/miniapp-publish/index.d.ts +542 -64
- package/types/protocol.d.ts +2083 -9
- package/types/vite/index.d.ts +25 -12
- package/dist/cli-chunks/browser-RAy8e8cV.cjs +0 -635
- package/dist/cli-chunks/runtime-gate-CR0dRMpQ.cjs +0 -65
- package/dist/cli-chunks/session-Dz1cGg0E.cjs +0 -3403
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-CO2_03W0.js +0 -102
- package/types/core/client.d.ts +0 -108
- package/types/core/csp-violation.d.ts +0 -5
- package/types/core/errors.d.ts +0 -78
- package/types/core/event-bus.d.ts +0 -11
- package/types/core/handshake-state.d.ts +0 -54
- package/types/core/history-observer.d.ts +0 -4
- package/types/core/mini-dev-console.d.ts +0 -36
- package/types/core/network-sanitize.d.ts +0 -31
- package/types/core/sdk.d.ts +0 -104
- package/types/core/singleton.d.ts +0 -372
- package/types/core/utils.d.ts +0 -10
- package/types/core/version.d.ts +0 -2
- package/types/devtools/device-logs.d.ts +0 -48
- package/types/miniapp-manifest/basic-info-browser.d.ts +0 -37
- package/types/miniapp-manifest/basic-info-image-header.d.ts +0 -6
- package/types/miniapp-manifest/basic-info-node.d.ts +0 -17
- package/types/miniapp-manifest/basic-info-placeholder.d.ts +0 -1
- package/types/miniapp-manifest/basic-info.d.ts +0 -33
- package/types/miniapp-manifest/bindings.d.ts +0 -70
- package/types/miniapp-manifest/category.d.ts +0 -11
- package/types/miniapp-manifest/companion-directory.d.ts +0 -2
- package/types/miniapp-manifest/companion-executable.d.ts +0 -4
- package/types/miniapp-manifest/companion-types.d.ts +0 -63
- package/types/miniapp-manifest/companions.d.ts +0 -17
- package/types/miniapp-manifest/index.d.ts +0 -7
- package/types/miniapp-manifest/node.d.ts +0 -22
- package/types/miniapp-manifest/permissions.d.ts +0 -48
- package/types/miniapp-manifest/runtime-gate.d.ts +0 -12
- package/types/miniapp-manifest/schema.d.ts +0 -302
- package/types/modules/auth/index.d.ts +0 -204
- package/types/modules/cloud/index.d.ts +0 -669
- package/types/modules/companion/index.d.ts +0 -1619
- package/types/modules/device/index.d.ts +0 -269
- package/types/modules/environment/index.d.ts +0 -238
- package/types/modules/files/index.d.ts +0 -5
- package/types/modules/files/registry.d.ts +0 -35
- package/types/modules/files/types.d.ts +0 -1548
- package/types/modules/navigation/app-pages/index.d.ts +0 -4
- package/types/modules/navigation/app-pages/types.d.ts +0 -135
- package/types/modules/navigation/index.d.ts +0 -312
- package/types/modules/network/index.d.ts +0 -457
- package/types/modules/network/observability.d.ts +0 -38
- package/types/modules/network/request-shape.d.ts +0 -44
- package/types/modules/share/copy-link.d.ts +0 -46
- package/types/modules/share/extra.d.ts +0 -5
- package/types/modules/share/index.d.ts +0 -294
- package/types/modules/share/screenshot.d.ts +0 -34
- package/types/modules/share/show-share-menu.d.ts +0 -29
- package/types/modules/share/types.d.ts +0 -201
- package/types/modules/storage/index.d.ts +0 -214
- package/types/modules/ui/index.d.ts +0 -315
- package/types/modules/user/get-info.d.ts +0 -44
- package/types/modules/user/index.d.ts +0 -245
- package/types/modules/user/revoke-authorization.d.ts +0 -31
- package/types/modules/user/steam-game-list.d.ts +0 -153
- package/types/modules/user/types.d.ts +0 -2
- package/types/modules/viewport/index.d.ts +0 -319
- package/types/protocol/capabilities.d.ts +0 -2
- package/types/protocol/constants.d.ts +0 -1
- package/types/protocol/dev-session.d.ts +0 -74
- package/types/protocol/guards.d.ts +0 -1
- package/types/protocol/runtime-permissions.d.ts +0 -2
- package/types/protocol/types.d.ts +0 -22
- package/types/skill-metadata.d.ts +0 -18
- package/types/vite/html-policy.d.ts +0 -6
- package/types/vite/runtime-permission-env.d.ts +0 -9
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { OpenAppPageOptions, OpenAppPagePayload } from './types';
|
|
2
|
-
export type { MiniProgramAppPageTarget, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenGameDetailAppPageOptions, OpenMiniProgramAppPagePayload, OpenMiniProgramAppPageOptions, OpenPostDetailAppPagePayload, OpenPostDetailAppPageOptions, OpenUserDetailAppPagePayload, OpenUserDetailAppPageOptions, } from './types';
|
|
3
|
-
/** 校验并规范化打开黑盒 App 页面参数。 */
|
|
4
|
-
export declare function normalizeOpenAppPageOptions(options: OpenAppPageOptions): OpenAppPagePayload;
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import type { MiniProgramShareExtraValue } from '../../share/types';
|
|
2
|
-
/**
|
|
3
|
-
* 小程序可请求打开的黑盒 App 页面目标。
|
|
4
|
-
*
|
|
5
|
-
* @remarks
|
|
6
|
-
* - `game_detail`:小黑盒游戏详情页。
|
|
7
|
-
* - `user_detail`:小黑盒用户详情页。
|
|
8
|
-
* - `post_detail`:小黑盒帖子详情页,可选定位评论。
|
|
9
|
-
* - `mini_program`:另一个公开发布的小程序。
|
|
10
|
-
*
|
|
11
|
-
* 移动端 Host 支持全部目标;PC Host 支持 `game_detail` 与 `mini_program`。该联合不接受任意
|
|
12
|
-
* URL、scheme、目标版本或内部路由路径,不支持的目标会在 SDK 或 Host 边界明确拒绝。
|
|
13
|
-
*/
|
|
14
|
-
export type MiniProgramAppPageTarget = 'game_detail' | 'user_detail' | 'post_detail' | 'mini_program';
|
|
15
|
-
/**
|
|
16
|
-
* 游戏详情的游戏平台类型:`pc`、`console`(主机)或 `mobile`(移动游戏)。
|
|
17
|
-
* 值区分大小写,不接受平台别名。
|
|
18
|
-
*/
|
|
19
|
-
export type MiniProgramGameDetailGameType = 'pc' | 'console' | 'mobile';
|
|
20
|
-
/** 游戏详情首屏:`game` 为详情主页,`wiki` 为百科页;省略时由 Host 选择默认页。 */
|
|
21
|
-
export type MiniProgramGameDetailPage = 'game' | 'wiki';
|
|
22
|
-
/**
|
|
23
|
-
* 打开游戏详情页的公共参数。
|
|
24
|
-
*
|
|
25
|
-
* @remarks
|
|
26
|
-
* 当前 PC Host 仅使用规范化后的 `appId` 发起游戏详情导航;`gameType` 仍须合法,但
|
|
27
|
-
* `page`、`hSrc`、`skuId` 等细分提示只在支持它们的 Host 上生效。
|
|
28
|
-
*/
|
|
29
|
-
export interface OpenGameDetailAppPageOptions {
|
|
30
|
-
/** 固定为 `game_detail`。 */
|
|
31
|
-
target: 'game_detail';
|
|
32
|
-
/**
|
|
33
|
-
* 游戏 app ID。字符串会 trim,数字会经 `String(value)` 转换;结果必须非空。
|
|
34
|
-
* SDK 不校验 ID 是否为整数、是否存在或属于 `gameType`,调用方应传真实目录 ID。
|
|
35
|
-
*/
|
|
36
|
-
appId: string | number;
|
|
37
|
-
/** 游戏平台类型;只接受大小写完全一致的 `pc`、`console` 或 `mobile`。 */
|
|
38
|
-
gameType: MiniProgramGameDetailGameType;
|
|
39
|
-
/** 首屏子页面;只接受 `game` 或 `wiki`,省略时由 Host 决定。 */
|
|
40
|
-
page?: MiniProgramGameDetailPage;
|
|
41
|
-
/** 来源追踪标识;字符串会 trim,JavaScript 数字会字符串化;结果必须非空,省略时不发送。 */
|
|
42
|
-
hSrc?: string;
|
|
43
|
-
/**
|
|
44
|
-
* 商品场景的默认 SKU ID。字符串会 trim,数字会字符串化;结果必须非空,省略时不发送。
|
|
45
|
-
* 是否展示或选中商品由目标 Host 与游戏详情页能力决定。
|
|
46
|
-
*/
|
|
47
|
-
skuId?: string | number;
|
|
48
|
-
}
|
|
49
|
-
/** 打开小黑盒用户详情页的公共参数;当前 PC Host 不支持该目标。 */
|
|
50
|
-
export interface OpenUserDetailAppPageOptions {
|
|
51
|
-
/** 固定为 `user_detail`。 */
|
|
52
|
-
target: 'user_detail';
|
|
53
|
-
/**
|
|
54
|
-
* 用户 `heybox_id`。必须直接传字符串;SDK 会 trim 并拒绝空值,不会像其他 ID 一样接受
|
|
55
|
-
* number,也不校验用户是否存在。
|
|
56
|
-
*/
|
|
57
|
-
userId: string;
|
|
58
|
-
}
|
|
59
|
-
/** 打开小黑盒帖子详情页的公共参数;当前 PC Host 不支持该目标。 */
|
|
60
|
-
export interface OpenPostDetailAppPageOptions {
|
|
61
|
-
/** 固定为 `post_detail`。 */
|
|
62
|
-
target: 'post_detail';
|
|
63
|
-
/** 帖子 ID;字符串会 trim,数字会字符串化,结果必须非空。 */
|
|
64
|
-
linkId: string | number;
|
|
65
|
-
/** 可选的根评论 ID;字符串会 trim,数字会字符串化,结果必须非空。 */
|
|
66
|
-
rootCommentId?: string | number;
|
|
67
|
-
/**
|
|
68
|
-
* 可选的目标评论 ID;字符串会 trim,数字会字符串化,结果必须非空。
|
|
69
|
-
* SDK 不要求同时提供 `rootCommentId`,最终定位行为由帖子页决定。
|
|
70
|
-
*/
|
|
71
|
-
commentId?: string | number;
|
|
72
|
-
}
|
|
73
|
-
/** 打开另一个公开发布小程序的参数。 */
|
|
74
|
-
export interface OpenMiniProgramAppPageOptions {
|
|
75
|
-
/** 固定为 `mini_program`。 */
|
|
76
|
-
target: 'mini_program';
|
|
77
|
-
/** 目标小程序 ID。SDK 会 trim 并拒绝空值;实际可访问性与版本由 Host 决定。 */
|
|
78
|
-
miniProgramId: string;
|
|
79
|
-
/**
|
|
80
|
-
* 可选启动数据。目标小程序通过 `share.getExtra()` 同步读取;省略与显式传入 `null` 含义不同。
|
|
81
|
-
* 值域、嵌套和 128 字节 MessagePack 上限与分享 `extra` 完全一致。
|
|
82
|
-
*/
|
|
83
|
-
extra?: MiniProgramShareExtraValue;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* 打开黑盒 App 页面的判别联合参数。
|
|
87
|
-
*
|
|
88
|
-
* @remarks
|
|
89
|
-
* `target` 决定其余必填字段。`options` 必须是非 null、非数组的对象;SDK 会在 bridge 前
|
|
90
|
-
* 校验已知字段,并把 `appId`、`skuId`、`linkId` 和评论 ID 规范化为字符串。空字符串、
|
|
91
|
-
* 非法枚举或与 `target` 不匹配的必填字段会以 `INVALID_PARAMS` 拒绝,且不会调用 Host。
|
|
92
|
-
* 对允许 number 的 ID,SDK 只执行 `String(value).trim()`,不校验有限值、整数、正负、长度
|
|
93
|
-
* 或资源是否存在;业务应传真实的有限 ID,不要依赖 `NaN`、`Infinity` 等字符串化结果。
|
|
94
|
-
*
|
|
95
|
-
* 每个目标只会转发上方列出的白名单字段。额外的 `url`、`path`、`scheme`、`windowId` 或
|
|
96
|
-
* 其他未知字段会被丢弃,不能用于打开任意页面或覆盖 Runtime 构造的受控路由。
|
|
97
|
-
*
|
|
98
|
-
* @see [navigation.openAppPage](/reference/sdk/navigation/openAppPage)
|
|
99
|
-
*/
|
|
100
|
-
export type OpenAppPageOptions = OpenGameDetailAppPageOptions | OpenUserDetailAppPageOptions | OpenPostDetailAppPageOptions | OpenMiniProgramAppPageOptions;
|
|
101
|
-
/**
|
|
102
|
-
* 打开游戏详情页的规范化 bridge payload;`appId` 与可选 `skuId` 已转换为非空字符串。
|
|
103
|
-
*/
|
|
104
|
-
export type OpenGameDetailAppPagePayload = Omit<OpenGameDetailAppPageOptions, 'appId' | 'skuId'> & {
|
|
105
|
-
appId: string;
|
|
106
|
-
skuId?: string;
|
|
107
|
-
};
|
|
108
|
-
/** 打开用户详情页的规范化 bridge payload;`userId` 已 trim 为非空字符串。 */
|
|
109
|
-
export type OpenUserDetailAppPagePayload = Omit<OpenUserDetailAppPageOptions, 'userId'> & {
|
|
110
|
-
userId: string;
|
|
111
|
-
};
|
|
112
|
-
/** 打开帖子详情页的规范化 bridge payload;帖子与评论 ID 均为非空字符串。 */
|
|
113
|
-
export type OpenPostDetailAppPagePayload = Omit<OpenPostDetailAppPageOptions, 'linkId' | 'rootCommentId' | 'commentId'> & {
|
|
114
|
-
linkId: string;
|
|
115
|
-
rootCommentId?: string;
|
|
116
|
-
commentId?: string;
|
|
117
|
-
};
|
|
118
|
-
/** 打开目标小程序的规范化 bridge payload;`miniProgramId` 已 trim。 */
|
|
119
|
-
export type OpenMiniProgramAppPagePayload = Omit<OpenMiniProgramAppPageOptions, 'miniProgramId'> & {
|
|
120
|
-
miniProgramId: string;
|
|
121
|
-
};
|
|
122
|
-
/**
|
|
123
|
-
* `navigation.openAppPage` 发送给 Host Runtime 的判别联合 payload。
|
|
124
|
-
*
|
|
125
|
-
* @remarks 只包含目标白名单字段;Runtime 会再次校验并构造固定的 Host 页面路由。
|
|
126
|
-
*/
|
|
127
|
-
export type OpenAppPagePayload = OpenGameDetailAppPagePayload | OpenUserDetailAppPagePayload | OpenPostDetailAppPagePayload | OpenMiniProgramAppPagePayload;
|
|
128
|
-
/**
|
|
129
|
-
* `navigation.openAppPage` 成功时 resolve `undefined`。
|
|
130
|
-
*
|
|
131
|
-
* @remarks
|
|
132
|
-
* 成功表示 Host 已接收参数并发起路由,不表示目标页加载完成,也不返回目标页数据、关闭结果
|
|
133
|
-
* 或返回当前小程序时的回调值。
|
|
134
|
-
*/
|
|
135
|
-
export type OpenAppPageResult = void;
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
import type { MiniProgramRequester } from '../../core/client';
|
|
2
|
-
import { type OpenAppPageOptions } from './app-pages';
|
|
3
|
-
export { NAVIGATION_CLOSE_METHOD, NAVIGATION_OPEN_APP_PAGE_METHOD, NAVIGATION_RELOAD_METHOD } from '../../protocol/capabilities';
|
|
4
|
-
export type { MiniProgramAppPageTarget, MiniProgramGameDetailGameType, MiniProgramGameDetailPage, OpenAppPageOptions, OpenAppPagePayload, OpenAppPageResult, OpenGameDetailAppPagePayload, OpenGameDetailAppPageOptions, OpenMiniProgramAppPagePayload, OpenMiniProgramAppPageOptions, OpenPostDetailAppPagePayload, OpenPostDetailAppPageOptions, OpenUserDetailAppPagePayload, OpenUserDetailAppPageOptions, } from './app-pages';
|
|
5
|
-
/**
|
|
6
|
-
* `navigation.close` 的无参 payload。
|
|
7
|
-
*
|
|
8
|
-
* @remarks
|
|
9
|
-
* App-facing API 必须以 `close()` 调用,不能传入强制关闭、关闭原因或窗口标识。Host Runtime
|
|
10
|
-
* 为兼容 bridge 调用会接受 `undefined` 或空普通对象;非空对象、数组和其他值会以
|
|
11
|
-
* `INVALID_PARAMS` 拒绝。
|
|
12
|
-
*
|
|
13
|
-
* @see [navigation.close](/reference/sdk/navigation/close)
|
|
14
|
-
*/
|
|
15
|
-
export type ClosePayload = void;
|
|
16
|
-
/**
|
|
17
|
-
* `navigation.close` 的成功结果为 `undefined`。
|
|
18
|
-
*
|
|
19
|
-
* @remarks
|
|
20
|
-
* 成功只表示 Host 的关闭原语已经接受并完成本次请求,不表示页面在 Promise resolve 后仍有
|
|
21
|
-
* 可继续执行的生命周期,也不返回关闭状态、原因或新页面信息。
|
|
22
|
-
*/
|
|
23
|
-
export type CloseResult = void;
|
|
24
|
-
/**
|
|
25
|
-
* `navigation.reload` 的无参 payload。
|
|
26
|
-
*
|
|
27
|
-
* @remarks
|
|
28
|
-
* App-facing API 必须以 `reload()` 调用,不能传入缓存、目标 URL 或强制刷新选项。Host Runtime
|
|
29
|
-
* 为兼容 bridge 调用会接受 `undefined` 或空普通对象;非空对象、数组和其他值会以
|
|
30
|
-
* `INVALID_PARAMS` 拒绝。
|
|
31
|
-
*
|
|
32
|
-
* @see [navigation.reload](/reference/sdk/navigation/reload)
|
|
33
|
-
*/
|
|
34
|
-
export type ReloadPayload = void;
|
|
35
|
-
/**
|
|
36
|
-
* `navigation.reload` 的成功结果为 `undefined`。
|
|
37
|
-
*
|
|
38
|
-
* @remarks
|
|
39
|
-
* 成功只表示 Host 的 reload 原语已接受请求,不表示旧页面可继续执行,也不返回新页面的
|
|
40
|
-
* `ready` 状态、加载结果或新 SDK 实例。
|
|
41
|
-
*/
|
|
42
|
-
export type ReloadResult = void;
|
|
43
|
-
export type { MiniProgramNavigationMethod } from '../../protocol/capabilities';
|
|
44
|
-
/** 外部小程序可调用的 navigation 模块。 */
|
|
45
|
-
export interface MiniProgramNavigationModule {
|
|
46
|
-
/**
|
|
47
|
-
* 请求宿主关闭当前小程序容器。
|
|
48
|
-
*
|
|
49
|
-
* @returns Host 关闭原语接受请求后 resolve `undefined`;这不是“页面仍可继续执行”的确认。
|
|
50
|
-
* @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS` 表示通过底层协议传入了非空 payload;
|
|
51
|
-
* App-facing `close()` 本身没有参数。
|
|
52
|
-
* @throws {@link HbMiniProgramSDKError} `METHOD_FORBIDDEN` / `METHOD_NOT_FOUND` 表示当前 Host
|
|
53
|
-
* 未实现或未开放关闭原语;`REQUEST_UNSUPPORTED` 表示 Host 无法执行当前关闭请求。
|
|
54
|
-
* @throws {@link HbMiniProgramSDKError} `RUNTIME_DESTROYED` / `RUNTIME_UNAVAILABLE` /
|
|
55
|
-
* `SDK_DESTROYED` 表示 Runtime、容器或 SDK 已进入终态。SDK 握手失败或 Host 在调用超时内
|
|
56
|
-
* 未接受请求时,还会返回对应握手错误码或 `REQUEST_TIMEOUT`。其他 Host 关闭错误保留其
|
|
57
|
-
* SDK 错误码。
|
|
58
|
-
*
|
|
59
|
-
* @remarks
|
|
60
|
-
* 该方法在 `android`、`ios`、`ohos`、`windows`、`macos` 上公开,但实际 Host 必须提供
|
|
61
|
-
* `presentation.close` 原语;缺失时 fail closed。调用无需 `package.json#heybox.permissions`
|
|
62
|
-
* 声明、平台批准、用户授权或可信用户手势。
|
|
63
|
-
*
|
|
64
|
-
* Host 接受请求后可以立即销毁 iframe 和当前 JavaScript 上下文。不要依赖 `await close()`
|
|
65
|
-
* 后的语句、timer、微任务、事件监听或内存状态完成关键工作;当前上下文销毁后,pending
|
|
66
|
-
* 与后续 SDK 请求会失败。每次调用都会直接转发给 Host,不是可查询的关闭状态或幂等事务。
|
|
67
|
-
*
|
|
68
|
-
* 需要保留的数据必须在调用前写完并等待成功,例如先 await
|
|
69
|
-
* [storage.setStorage](/reference/sdk/storage/setStorage) 或业务服务端请求,再调用本方法。
|
|
70
|
-
* `storage.setStorage` 自身要求 `storage` 权限;这不会让 `navigation.close` 也需要该权限。
|
|
71
|
-
*
|
|
72
|
-
* Host 销毁当前运行环境时会尽力派发 [on('unload')](/reference/sdk/lifecycle/on),但
|
|
73
|
-
* `unload` 不重放且可能来不及送达,只适合停止轮询、释放观察者等快速幂等清理,不能作为
|
|
74
|
-
* 最后一次持久化机会。需要保留容器但创建新页面上下文时使用
|
|
75
|
-
* [navigation.reload](/reference/sdk/navigation/reload),不要把 close 当作 reload。
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* ```ts
|
|
79
|
-
* import hbSDK from '@heybox/hb-sdk'
|
|
80
|
-
*
|
|
81
|
-
* async function saveAndClose(draftText: string) {
|
|
82
|
-
* // 所有必须完成的写入都放在 close 之前,并等待 Host 确认持久化。
|
|
83
|
-
* await hbSDK.storage.setStorage({
|
|
84
|
-
* key: 'draft',
|
|
85
|
-
* data: { text: draftText, updatedAt: Date.now() },
|
|
86
|
-
* })
|
|
87
|
-
*
|
|
88
|
-
* await hbSDK.navigation.close()
|
|
89
|
-
* // 不要在这里安排必须执行的业务逻辑;当前上下文可能已经终止。
|
|
90
|
-
* }
|
|
91
|
-
* ```
|
|
92
|
-
*
|
|
93
|
-
* @see [navigation.reload](/reference/sdk/navigation/reload)
|
|
94
|
-
* @see [lifecycle.on](/reference/sdk/lifecycle/on)
|
|
95
|
-
* @see [storage.setStorage](/reference/sdk/storage/setStorage)
|
|
96
|
-
* @see [生命周期与事件](/guide/lifecycle)
|
|
97
|
-
* @see [权限声明](/guide/permissions#无需声明的-api)
|
|
98
|
-
*
|
|
99
|
-
* @since 0.4.4
|
|
100
|
-
* @hbPlatform android
|
|
101
|
-
* @hbPlatform ios
|
|
102
|
-
* @hbPlatform ohos
|
|
103
|
-
* @hbPlatform windows
|
|
104
|
-
* @hbPlatform macos
|
|
105
|
-
* @hbClient android none
|
|
106
|
-
* @hbClient ios none
|
|
107
|
-
* @hbClient ohos none
|
|
108
|
-
* @hbClient windows none
|
|
109
|
-
* @hbClient macos none
|
|
110
|
-
*/
|
|
111
|
-
close(): Promise<void>;
|
|
112
|
-
/**
|
|
113
|
-
* 请求宿主重载当前小程序容器。
|
|
114
|
-
*
|
|
115
|
-
* @returns Host reload 原语接受请求后 resolve `undefined`;这不是旧页面仍可继续执行的确认。
|
|
116
|
-
* @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS` 表示通过底层协议传入了非空 payload;
|
|
117
|
-
* App-facing `reload()` 本身没有参数。
|
|
118
|
-
* @throws {@link HbMiniProgramSDKError} `METHOD_FORBIDDEN` / `METHOD_NOT_FOUND` 表示当前 Host
|
|
119
|
-
* 未实现或未开放 reload 原语;`REQUEST_UNSUPPORTED` 表示 Host 无法执行当前 reload 请求。
|
|
120
|
-
* @throws {@link HbMiniProgramSDKError} `RUNTIME_DESTROYED` / `RUNTIME_UNAVAILABLE` /
|
|
121
|
-
* `SDK_DESTROYED` 表示 Runtime、旧页面上下文或 SDK 已进入终态。SDK 握手失败或 Host 在
|
|
122
|
-
* 调用超时内未接受请求时,还会返回对应握手错误码或 `REQUEST_TIMEOUT`;其他 Host reload
|
|
123
|
-
* 错误保留其 SDK 错误码。
|
|
124
|
-
*
|
|
125
|
-
* @remarks
|
|
126
|
-
* 该方法在 `android`、`ios`、`ohos`、`windows`、`macos` 上公开,但实际 Host 必须提供
|
|
127
|
-
* `presentation.reload` 原语;缺失时 fail closed。调用无需 `package.json#heybox.permissions`
|
|
128
|
-
* 声明、平台批准、用户授权或可信用户手势。
|
|
129
|
-
*
|
|
130
|
-
* Host 接受请求后会用新的页面运行上下文替换当前上下文。模块内变量、DOM、timer、未完成
|
|
131
|
-
* Promise、当前 SDK 实例以及通过 `on()` / `onHandshakeStateChange()` 注册的监听都不会跨
|
|
132
|
-
* reload 保留;新页面会重新加载 SDK、重新握手并重新注册所需监听。不要依赖
|
|
133
|
-
* `await reload()` 后的语句完成初始化或清理。每次调用都会直接转发给 Host,不会合并为
|
|
134
|
-
* 幂等的“正在重载”状态。
|
|
135
|
-
*
|
|
136
|
-
* 需要跨 reload 恢复的数据必须在调用前写完并等待成功,例如先 await
|
|
137
|
-
* [storage.setStorage](/reference/sdk/storage/setStorage) 或业务服务端请求。SDK storage 按
|
|
138
|
-
* canonical 小程序身份持久化,可由新页面重新读取,但 `storage.setStorage` 自身要求
|
|
139
|
-
* `storage` 权限;这不会让 `navigation.reload` 也需要该权限。
|
|
140
|
-
*
|
|
141
|
-
* Host 终止旧页面时会尽力派发 [on('unload')](/reference/sdk/lifecycle/on),但 `unload`
|
|
142
|
-
* 不重放且可能来不及送达,只适合停止轮询、释放观察者等快速幂等清理,不能作为最后一次
|
|
143
|
-
* 持久化机会。若要终止整个小程序容器而不是创建新页面上下文,使用
|
|
144
|
-
* [navigation.close](/reference/sdk/navigation/close)。
|
|
145
|
-
*
|
|
146
|
-
* @example
|
|
147
|
-
* ```ts
|
|
148
|
-
* import hbSDK from '@heybox/hb-sdk'
|
|
149
|
-
*
|
|
150
|
-
* async function persistFiltersAndReload(filters: { tag: string }) {
|
|
151
|
-
* await hbSDK.storage.setStorage({
|
|
152
|
-
* key: 'game_filters',
|
|
153
|
-
* data: filters,
|
|
154
|
-
* })
|
|
155
|
-
*
|
|
156
|
-
* await hbSDK.navigation.reload()
|
|
157
|
-
* // 不要在这里安排必须执行的逻辑;新页面应从 storage 恢复 filters。
|
|
158
|
-
* }
|
|
159
|
-
* ```
|
|
160
|
-
*
|
|
161
|
-
* @see [navigation.close](/reference/sdk/navigation/close)
|
|
162
|
-
* @see [lifecycle.on](/reference/sdk/lifecycle/on)
|
|
163
|
-
* @see [storage.setStorage](/reference/sdk/storage/setStorage)
|
|
164
|
-
* @see [生命周期与事件](/guide/lifecycle)
|
|
165
|
-
* @see [权限声明](/guide/permissions#无需声明的-api)
|
|
166
|
-
*
|
|
167
|
-
* @since 0.4.4
|
|
168
|
-
* @hbPlatform android
|
|
169
|
-
* @hbPlatform ios
|
|
170
|
-
* @hbPlatform ohos
|
|
171
|
-
* @hbPlatform windows
|
|
172
|
-
* @hbPlatform macos
|
|
173
|
-
* @hbClient android none
|
|
174
|
-
* @hbClient ios none
|
|
175
|
-
* @hbClient ohos none
|
|
176
|
-
* @hbClient windows none
|
|
177
|
-
* @hbClient macos none
|
|
178
|
-
*/
|
|
179
|
-
reload(): Promise<void>;
|
|
180
|
-
/**
|
|
181
|
-
* 请求宿主打开受 SDK 白名单约束的黑盒 App 页面或公开小程序。
|
|
182
|
-
*
|
|
183
|
-
* @param options - 由 `target` 判别的目标页参数;字段与规范化规则见 {@link OpenAppPageOptions}。
|
|
184
|
-
* @returns Host 接收参数并发起页面路由后 resolve `undefined`;不会等待目标页加载或返回目标页结果。
|
|
185
|
-
* @throws {@link HbMiniProgramSDKError} `INVALID_PARAMS` 表示 `options`、`target`、必填 ID、
|
|
186
|
-
* `gameType`、`page` 或其他已知字段不合法。SDK 会在调用 bridge 前拒绝这些输入。
|
|
187
|
-
* @throws {@link HbMiniProgramSDKError} `METHOD_FORBIDDEN` / `METHOD_NOT_FOUND` 表示当前 Host
|
|
188
|
-
* 未实现或未开放该能力;`REQUEST_UNSUPPORTED` 表示 Host 不支持所选目标或路由形状,例如
|
|
189
|
-
* 当前 PC Host 的 `user_detail`、`post_detail`,或缺少 `navigation.openGameDetail` 子能力。
|
|
190
|
-
* @throws {@link HbMiniProgramSDKError} `RUNTIME_DESTROYED` / `RUNTIME_UNAVAILABLE` /
|
|
191
|
-
* `SDK_DESTROYED` 表示 Runtime、容器或 SDK 已进入终态。SDK 握手失败或 Host 路由调用超时
|
|
192
|
-
* 时,还会返回对应握手错误码或 `REQUEST_TIMEOUT`;其他 Host 路由失败保留其 SDK 错误码。
|
|
193
|
-
*
|
|
194
|
-
* @remarks
|
|
195
|
-
* 公开白名单包含游戏详情、用户详情、帖子详情和公开小程序;不能传任意 URL、scheme、版本
|
|
196
|
-
* 或客户端内部路径。`mini_program` 只接受 `miniProgramId` 与可选 `extra`,目标版本和访问性
|
|
197
|
-
* 由 Host 决定。`extra` 与分享扩展数据使用相同格式,目标小程序通过 `share.getExtra()` 读取。
|
|
198
|
-
* Runtime 会在 Host 边界再次校验,页面提供的字段不能覆盖目标路径或窗口展示参数。
|
|
199
|
-
*
|
|
200
|
-
* 打开 `mini_program` 前,支持方向控制的 Host 会先把当前容器恢复为竖屏、非全屏,并等待
|
|
201
|
-
* 宿主确认后才打开目标;确认状态变化时发出 `display_change`(`source: 'api'`)。恢复阶段
|
|
202
|
-
* 最多等待 10 秒,超时返回 `ORIENTATION_TIMEOUT` 并取消宿主方向操作。SDK 总请求超时
|
|
203
|
-
* 返回 `REQUEST_TIMEOUT`,同时通知 Runtime 取消;SDK 销毁也会取消尚未完成的跳转。
|
|
204
|
-
* 恢复错误或请求取消后不会打开目标,晚到的方向成功回复也不会继续跳转。没有方向原语
|
|
205
|
-
* 或返回 `supported: false` 的旧 Host 仍允许跳转。返回当前小程序后不会
|
|
206
|
-
* 自动回到原方向,需要横屏的页面应在 `show` 事件中重新调用 `viewport.setDisplay()`。
|
|
207
|
-
*
|
|
208
|
-
* 移动端 Host 支持全部四类目标。当前 Windows/macOS PC Host 支持 `game_detail` 和
|
|
209
|
-
* `mini_program`,仍不支持 `user_detail`、`post_detail`;游戏详情只把 `appId` 交给导航,
|
|
210
|
-
* `gameType` 仍须合法,而 `page`、`hSrc`、`skuId` 不保证在 PC 生效。调用方应按目标和平台
|
|
211
|
-
* 处理 `REQUEST_UNSUPPORTED`,不能仅凭方法出现在能力目录中推断每种目标都可用。
|
|
212
|
-
*
|
|
213
|
-
* 该调用无需 `package.json#heybox.permissions` 声明、平台批准、用户授权或可信用户手势。
|
|
214
|
-
* 它只发起一次 App 导航,没有返回值或 disposer,也不会替代
|
|
215
|
-
* [navigation.close](/reference/sdk/navigation/close) 或
|
|
216
|
-
* [navigation.reload](/reference/sdk/navigation/reload) 对当前小程序容器的控制。
|
|
217
|
-
*
|
|
218
|
-
* @example
|
|
219
|
-
* ```ts
|
|
220
|
-
* import hbSDK from '@heybox/hb-sdk'
|
|
221
|
-
*
|
|
222
|
-
* async function openGameWiki() {
|
|
223
|
-
* await hbSDK.navigation.openAppPage({
|
|
224
|
-
* target: 'game_detail',
|
|
225
|
-
* appId: 578080,
|
|
226
|
-
* gameType: 'pc',
|
|
227
|
-
* page: 'wiki',
|
|
228
|
-
* hSrc: 'workshop',
|
|
229
|
-
* })
|
|
230
|
-
* }
|
|
231
|
-
*
|
|
232
|
-
* async function openUserProfile(heyboxId: string) {
|
|
233
|
-
* await hbSDK.navigation.openAppPage({
|
|
234
|
-
* target: 'user_detail',
|
|
235
|
-
* userId: heyboxId,
|
|
236
|
-
* })
|
|
237
|
-
* }
|
|
238
|
-
*
|
|
239
|
-
* async function openPostComment(linkId: number, rootCommentId: number, commentId: number) {
|
|
240
|
-
* await hbSDK.navigation.openAppPage({
|
|
241
|
-
* target: 'post_detail',
|
|
242
|
-
* linkId,
|
|
243
|
-
* rootCommentId,
|
|
244
|
-
* commentId,
|
|
245
|
-
* })
|
|
246
|
-
* }
|
|
247
|
-
*
|
|
248
|
-
* async function openMiniProgram() {
|
|
249
|
-
* await hbSDK.navigation.openAppPage({
|
|
250
|
-
* target: 'mini_program',
|
|
251
|
-
* miniProgramId: '2e2b8e19-8d73-45f8-8785-b87fd5535510',
|
|
252
|
-
* extra: { page: 'ranking' },
|
|
253
|
-
* })
|
|
254
|
-
* }
|
|
255
|
-
* ```
|
|
256
|
-
*
|
|
257
|
-
* @see {@link OpenGameDetailAppPageOptions}
|
|
258
|
-
* @see {@link OpenUserDetailAppPageOptions}
|
|
259
|
-
* @see {@link OpenPostDetailAppPageOptions}
|
|
260
|
-
* @see {@link OpenMiniProgramAppPageOptions}
|
|
261
|
-
* @see [navigation.close](/reference/sdk/navigation/close)
|
|
262
|
-
* @see [navigation.reload](/reference/sdk/navigation/reload)
|
|
263
|
-
* @see [权限声明](/guide/permissions#无需声明的-api)
|
|
264
|
-
*
|
|
265
|
-
* @since 0.5.2
|
|
266
|
-
* @hbPlatform android
|
|
267
|
-
* @hbPlatform ios
|
|
268
|
-
* @hbPlatform ohos
|
|
269
|
-
* @hbPlatform windows
|
|
270
|
-
* @hbPlatform macos
|
|
271
|
-
* @hbClient android none
|
|
272
|
-
* @hbClient ios none
|
|
273
|
-
* @hbClient ohos none
|
|
274
|
-
* @hbClient windows none
|
|
275
|
-
* @hbClient macos none
|
|
276
|
-
*/
|
|
277
|
-
openAppPage(options: OpenAppPageOptions): Promise<void>;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* 请求宿主关闭当前小程序容器。
|
|
281
|
-
*
|
|
282
|
-
* @param requester - 底层 bridge 请求能力。
|
|
283
|
-
* @returns Host 接受关闭请求后 resolve `undefined`;当前页面上下文随后可能立即终止。
|
|
284
|
-
* @throws {@link HbMiniProgramSDKError} Host 能力缺失、关闭失败或 SDK / Runtime 已终止时抛出。
|
|
285
|
-
* @remarks 必须完成的持久化工作应在调用前结束;该能力无需 Manifest 权限或可信用户手势。
|
|
286
|
-
* @see [navigation.close](/reference/sdk/navigation/close)
|
|
287
|
-
*/
|
|
288
|
-
export declare function close(requester: MiniProgramRequester): Promise<void>;
|
|
289
|
-
/**
|
|
290
|
-
* 请求宿主重载当前小程序容器。
|
|
291
|
-
*
|
|
292
|
-
* @param requester - 底层 bridge 请求能力。
|
|
293
|
-
* @returns Host 接受 reload 请求后 resolve `undefined`;旧页面上下文随后会被替换。
|
|
294
|
-
* @throws {@link HbMiniProgramSDKError} Host 能力缺失、reload 失败或 SDK / Runtime 已终止时抛出。
|
|
295
|
-
* @remarks 跨页面状态应在调用前持久化;该能力无需 Manifest 权限或可信用户手势。
|
|
296
|
-
* @see [navigation.reload](/reference/sdk/navigation/reload)
|
|
297
|
-
*/
|
|
298
|
-
export declare function reload(requester: MiniProgramRequester): Promise<void>;
|
|
299
|
-
/**
|
|
300
|
-
* 请求宿主打开受 SDK 白名单约束的黑盒 App 页面或公开小程序。
|
|
301
|
-
*
|
|
302
|
-
* @param requester - 底层 bridge 请求能力。
|
|
303
|
-
* @param options - 由 `target` 判别的目标页参数;发送前会校验并规范化。
|
|
304
|
-
* @returns Host 发起受控页面路由后 resolve `undefined`。
|
|
305
|
-
* @throws {@link HbMiniProgramSDKError} 参数非法、目标不受 Host 支持、路由失败或 SDK /
|
|
306
|
-
* Runtime 已终止时抛出。
|
|
307
|
-
* @remarks 该能力不接受任意 URL、版本或内部路由,也无需 Manifest 权限或可信用户手势。
|
|
308
|
-
* @see [navigation.openAppPage](/reference/sdk/navigation/openAppPage)
|
|
309
|
-
*/
|
|
310
|
-
export declare function openAppPage(requester: MiniProgramRequester, options: OpenAppPageOptions): Promise<void>;
|
|
311
|
-
/** 创建导航能力模块。 */
|
|
312
|
-
export declare function createNavigationModule(requester: MiniProgramRequester): MiniProgramNavigationModule;
|