@heybox/hb-sdk 0.9.0-alpha.7 → 0.9.0
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 +54 -0
- package/README.md +8 -0
- package/dist/cli-chunks/{build-CGRiHv4q.cjs → build-D01zUnqJ.cjs} +5 -5
- package/dist/cli-chunks/{context-BgT4Bu6O.cjs → context-BBfpZWvS.cjs} +2 -2
- package/dist/cli-chunks/{create-DK3wIhMx.cjs → create-0MZlL6Vb.cjs} +1 -1
- package/dist/cli-chunks/{dev-S_UAnZpE.cjs → dev-DRDvIKah.cjs} +23 -12
- package/dist/cli-chunks/{doctor-DfdRXsM_.cjs → doctor-B6yYLEjK.cjs} +1 -1
- package/dist/cli-chunks/{index-CLeGudBp.cjs → index-BcrpdqEl.cjs} +2 -2
- package/dist/cli-chunks/{index-BEP5dl_r.cjs → index-BdI9e2M_.cjs} +15 -15
- package/dist/cli-chunks/{index.esm-DJGpZ9Ir.cjs → index.esm-_JWYoJDg.cjs} +7 -7
- package/dist/cli-chunks/{login-BcWTgHNB.cjs → login-QgLsbmLe.cjs} +2 -2
- package/dist/cli-chunks/{project-vite-D5KAFOxL.cjs → project-vite-DiGyY9kQ.cjs} +1 -1
- package/dist/cli-chunks/{remote-CJOKhpUj.cjs → remote-xLIgPix6.cjs} +7 -7
- package/dist/cli-chunks/{runtime-gate-DW6fIZcP.cjs → runtime-gate-AtTBauWV.cjs} +1 -1
- package/dist/cli-chunks/{runtime-permission-env-DGNl_6Bl.cjs → runtime-permission-env-QrndVK72.cjs} +1 -5
- package/dist/cli-chunks/{session-BeLk87Xx.cjs → session-BilIrecv.cjs} +1 -1
- package/dist/cli-chunks/{skill-CwQvzYB7.cjs → skill-D1Fm2RTs.cjs} +2 -2
- package/dist/cli-chunks/{version-BoNCC5oD.cjs → version-D8jlMg_C.cjs} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-R5zFBCNc.js +102 -0
- package/dist/devtools/browser-dev-host/assets/{desktop-app-launch-D7gG-dIr.js → desktop-app-launch-DvlJu02d.js} +1 -1
- package/dist/devtools/browser-dev-host/assets/{index-SLlXfKy9.js → index-CuKd_Bfx.js} +3 -3
- package/dist/devtools/browser-dev-host/index.html +2 -2
- package/dist/index.cjs.js +9 -2
- package/dist/index.esm.js +9 -2
- package/dist/vite.cjs.js +2 -7
- package/dist/vite.esm.js +2 -7
- package/package.json +7 -7
- package/skill/skill.json +4 -4
- package/types/miniapp-manifest/permissions.d.ts +1 -2
- package/types/modules/files/types.d.ts +19 -4
- package/types/modules/navigation/index.d.ts +8 -0
- package/types/vite/index.d.ts +1 -1
- package/dist/devtools/browser-dev-host/assets/browser-dev-host-Ce0Xm1zJ.js +0 -102
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta name="theme-color" content="#f4f5f7" />
|
|
7
7
|
<title>小程序工坊调试台</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/desktop-app-launch-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CuKd_Bfx.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/desktop-app-launch-DvlJu02d.js">
|
|
10
10
|
<link rel="stylesheet" crossorigin href="/assets/index-B5aFVoao.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
package/dist/index.cjs.js
CHANGED
|
@@ -1342,7 +1342,7 @@ function createMessageId() {
|
|
|
1342
1342
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
1343
1343
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
1344
1344
|
? undefined
|
|
1345
|
-
: '0.9.0
|
|
1345
|
+
: '0.9.0';
|
|
1346
1346
|
|
|
1347
1347
|
const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
|
|
1348
1348
|
const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
|
|
@@ -1531,6 +1531,11 @@ class MiniProgramBridgeClient {
|
|
|
1531
1531
|
resolve: resolve,
|
|
1532
1532
|
reject,
|
|
1533
1533
|
isOperation: !useTimeout,
|
|
1534
|
+
cancelOnTimeout: method === NAVIGATION_OPEN_APP_PAGE_METHOD &&
|
|
1535
|
+
!!payload &&
|
|
1536
|
+
typeof payload === 'object' &&
|
|
1537
|
+
'target' in payload &&
|
|
1538
|
+
payload.target === 'mini_program',
|
|
1534
1539
|
cancelOnAbort: options.cancelOnAbort !== false,
|
|
1535
1540
|
...(options.onProgress ? { onProgress: options.onProgress } : {}),
|
|
1536
1541
|
...(options.signal ? { signal: options.signal } : {}),
|
|
@@ -1541,6 +1546,8 @@ class MiniProgramBridgeClient {
|
|
|
1541
1546
|
if (!active) {
|
|
1542
1547
|
return;
|
|
1543
1548
|
}
|
|
1549
|
+
if (active.cancelOnTimeout)
|
|
1550
|
+
this.sendCancel(id);
|
|
1544
1551
|
this.cleanupPending(active);
|
|
1545
1552
|
this.pendingRequests.delete(id);
|
|
1546
1553
|
reject(createSDKError('REQUEST_TIMEOUT', `${method} 调用超时`));
|
|
@@ -1779,7 +1786,7 @@ class MiniProgramBridgeClient {
|
|
|
1779
1786
|
}
|
|
1780
1787
|
sendCancel(id) {
|
|
1781
1788
|
const pending = this.pendingRequests.get(id);
|
|
1782
|
-
if (!pending
|
|
1789
|
+
if (!pending || (!pending.isOperation && !pending.cancelOnTimeout) || pending.cancelSent) {
|
|
1783
1790
|
return;
|
|
1784
1791
|
}
|
|
1785
1792
|
pending.cancelSent = true;
|
package/dist/index.esm.js
CHANGED
|
@@ -1338,7 +1338,7 @@ function createMessageId() {
|
|
|
1338
1338
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
1339
1339
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
1340
1340
|
? undefined
|
|
1341
|
-
: '0.9.0
|
|
1341
|
+
: '0.9.0';
|
|
1342
1342
|
|
|
1343
1343
|
const RUNTIME_MODES = new Set(['production', 'preview', 'development', 'unknown']);
|
|
1344
1344
|
const OPERATING_SYSTEM_NAMES = new Set(['android', 'ios', 'ohos', 'windows', 'macos', 'linux', 'unknown']);
|
|
@@ -1527,6 +1527,11 @@ class MiniProgramBridgeClient {
|
|
|
1527
1527
|
resolve: resolve,
|
|
1528
1528
|
reject,
|
|
1529
1529
|
isOperation: !useTimeout,
|
|
1530
|
+
cancelOnTimeout: method === NAVIGATION_OPEN_APP_PAGE_METHOD &&
|
|
1531
|
+
!!payload &&
|
|
1532
|
+
typeof payload === 'object' &&
|
|
1533
|
+
'target' in payload &&
|
|
1534
|
+
payload.target === 'mini_program',
|
|
1530
1535
|
cancelOnAbort: options.cancelOnAbort !== false,
|
|
1531
1536
|
...(options.onProgress ? { onProgress: options.onProgress } : {}),
|
|
1532
1537
|
...(options.signal ? { signal: options.signal } : {}),
|
|
@@ -1537,6 +1542,8 @@ class MiniProgramBridgeClient {
|
|
|
1537
1542
|
if (!active) {
|
|
1538
1543
|
return;
|
|
1539
1544
|
}
|
|
1545
|
+
if (active.cancelOnTimeout)
|
|
1546
|
+
this.sendCancel(id);
|
|
1540
1547
|
this.cleanupPending(active);
|
|
1541
1548
|
this.pendingRequests.delete(id);
|
|
1542
1549
|
reject(createSDKError('REQUEST_TIMEOUT', `${method} 调用超时`));
|
|
@@ -1775,7 +1782,7 @@ class MiniProgramBridgeClient {
|
|
|
1775
1782
|
}
|
|
1776
1783
|
sendCancel(id) {
|
|
1777
1784
|
const pending = this.pendingRequests.get(id);
|
|
1778
|
-
if (!pending
|
|
1785
|
+
if (!pending || (!pending.isOperation && !pending.cancelOnTimeout) || pending.cancelSent) {
|
|
1779
1786
|
return;
|
|
1780
1787
|
}
|
|
1781
1788
|
pending.cancelSent = true;
|
package/dist/vite.cjs.js
CHANGED
|
@@ -2965,7 +2965,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
|
|
|
2965
2965
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
2966
2966
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
2967
2967
|
? undefined
|
|
2968
|
-
: '0.9.0
|
|
2968
|
+
: '0.9.0';
|
|
2969
2969
|
|
|
2970
2970
|
/**
|
|
2971
2971
|
* iframe 与调试台页面的开发期 console 捕获转发。
|
|
@@ -3610,9 +3610,6 @@ function requiresExplicitPermissions(sdkVersion) {
|
|
|
3610
3610
|
throw new Error(`sdkVersion 必须是合法 SemVer:${sdkVersion}`);
|
|
3611
3611
|
return parsed.major > 0 || parsed.minor >= 9;
|
|
3612
3612
|
}
|
|
3613
|
-
function getMissingPermissionsWarning(sourceLabel = 'package.json#heybox.permissions') {
|
|
3614
|
-
return `${sourceLabel} 尚未声明。当前按 0.8 兼容行为构建;0.9.0 起将拒绝构建,请尽快补充权限声明(无权限需求时配置 {})。`;
|
|
3615
|
-
}
|
|
3616
3613
|
function isRecord$3(value) {
|
|
3617
3614
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
3618
3615
|
}
|
|
@@ -13418,7 +13415,7 @@ const devSnapshotStores = devSnapshotRegistry[devSnapshotStoreKey];
|
|
|
13418
13415
|
* `hb-sdk remote deploy` 将当前版本的 `network` 声明与远端批准结果求交并确认最终启用后,才会
|
|
13419
13416
|
* 建立 verified 上下文供插件读取内部
|
|
13420
13417
|
* `HB_SDK_RUNTIME_PERMISSION_CONTEXT` + `HB_SDK_RUNTIME_USE_OFFICIAL_DOMAIN` 组合跳过平台 CSP;单独设置
|
|
13421
|
-
*
|
|
13418
|
+
* 任一值无效。完全缺失权限声明的项目会直接拒绝构建;`useOfficialDomain` 不参与
|
|
13422
13419
|
* CSP 跳过决定。Runtime Gate、HTML 校验和 Manifest 生成始终保留。
|
|
13423
13420
|
*
|
|
13424
13421
|
* `HB_SDK_COMPANION_ARTIFACT_ACCESS_TOKEN`、`HB_SDK_MINI_PROGRAM_MANIFEST_ACCESS_TOKEN`、
|
|
@@ -13782,8 +13779,6 @@ function miniappManifest() {
|
|
|
13782
13779
|
const companionDeclarations = includeCompanions ? companionConfig.declarations : undefined;
|
|
13783
13780
|
const bindAppIds = readMiniappBindAppIdsFromPackageJson(root);
|
|
13784
13781
|
const category = readMiniappCategoryFromPackageJson(root);
|
|
13785
|
-
if (!parsedPermissions.declared)
|
|
13786
|
-
this.warn(getMissingPermissionsWarning());
|
|
13787
13782
|
if (companionDeclarations && !parsedPermissions.permissions?.companion) {
|
|
13788
13783
|
throw new Error('配置 companions 时必须声明 package.json#heybox.permissions.companion.enabled=true');
|
|
13789
13784
|
}
|
package/dist/vite.esm.js
CHANGED
|
@@ -2962,7 +2962,7 @@ async function ensureBasicInfoDirectory(rootPath, relative) {
|
|
|
2962
2962
|
/** 构建时替换为当前发布包的实际版本。 */
|
|
2963
2963
|
const HB_SDK_VERSION = typeof undefined === 'string'
|
|
2964
2964
|
? undefined
|
|
2965
|
-
: '0.9.0
|
|
2965
|
+
: '0.9.0';
|
|
2966
2966
|
|
|
2967
2967
|
/**
|
|
2968
2968
|
* iframe 与调试台页面的开发期 console 捕获转发。
|
|
@@ -3607,9 +3607,6 @@ function requiresExplicitPermissions(sdkVersion) {
|
|
|
3607
3607
|
throw new Error(`sdkVersion 必须是合法 SemVer:${sdkVersion}`);
|
|
3608
3608
|
return parsed.major > 0 || parsed.minor >= 9;
|
|
3609
3609
|
}
|
|
3610
|
-
function getMissingPermissionsWarning(sourceLabel = 'package.json#heybox.permissions') {
|
|
3611
|
-
return `${sourceLabel} 尚未声明。当前按 0.8 兼容行为构建;0.9.0 起将拒绝构建,请尽快补充权限声明(无权限需求时配置 {})。`;
|
|
3612
|
-
}
|
|
3613
3610
|
function isRecord$3(value) {
|
|
3614
3611
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
3615
3612
|
}
|
|
@@ -13415,7 +13412,7 @@ const devSnapshotStores = devSnapshotRegistry[devSnapshotStoreKey];
|
|
|
13415
13412
|
* `hb-sdk remote deploy` 将当前版本的 `network` 声明与远端批准结果求交并确认最终启用后,才会
|
|
13416
13413
|
* 建立 verified 上下文供插件读取内部
|
|
13417
13414
|
* `HB_SDK_RUNTIME_PERMISSION_CONTEXT` + `HB_SDK_RUNTIME_USE_OFFICIAL_DOMAIN` 组合跳过平台 CSP;单独设置
|
|
13418
|
-
*
|
|
13415
|
+
* 任一值无效。完全缺失权限声明的项目会直接拒绝构建;`useOfficialDomain` 不参与
|
|
13419
13416
|
* CSP 跳过决定。Runtime Gate、HTML 校验和 Manifest 生成始终保留。
|
|
13420
13417
|
*
|
|
13421
13418
|
* `HB_SDK_COMPANION_ARTIFACT_ACCESS_TOKEN`、`HB_SDK_MINI_PROGRAM_MANIFEST_ACCESS_TOKEN`、
|
|
@@ -13779,8 +13776,6 @@ function miniappManifest() {
|
|
|
13779
13776
|
const companionDeclarations = includeCompanions ? companionConfig.declarations : undefined;
|
|
13780
13777
|
const bindAppIds = readMiniappBindAppIdsFromPackageJson(root);
|
|
13781
13778
|
const category = readMiniappCategoryFromPackageJson(root);
|
|
13782
|
-
if (!parsedPermissions.declared)
|
|
13783
|
-
this.warn(getMissingPermissionsWarning());
|
|
13784
13779
|
if (companionDeclarations && !parsedPermissions.permissions?.companion) {
|
|
13785
13780
|
throw new Error('配置 companions 时必须声明 package.json#heybox.permissions.companion.enabled=true');
|
|
13786
13781
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heybox/hb-sdk",
|
|
3
|
-
"version": "0.9.0
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"sideEffects": [
|
|
5
5
|
"./src/index.ts",
|
|
6
6
|
"./src/core/singleton.ts",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"undici": "^7.28.0",
|
|
66
66
|
"ws": "^8.18.0",
|
|
67
67
|
"sharp": "^0.34.5",
|
|
68
|
-
"@heybox/hb-sdk-protocol": "0.9.0
|
|
68
|
+
"@heybox/hb-sdk-protocol": "0.9.0"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
71
71
|
"vite": ">=5"
|
|
@@ -116,13 +116,13 @@
|
|
|
116
116
|
"vue-tsc": "^3.3.7",
|
|
117
117
|
"vite": "^8.0.12",
|
|
118
118
|
"vitest": "^3.2.4",
|
|
119
|
-
"@heybox-domain/heybox-vue3-ui": "~0.1.0",
|
|
120
119
|
"@heybox-domain/heybox-theme": "~0.1.0",
|
|
120
|
+
"@heybox-domain/heybox-vue3-ui": "~0.1.0",
|
|
121
|
+
"@heybox/hb-sdk-runtime": "~0.9.0",
|
|
121
122
|
"@heybox/hb-api": "~1.28.10",
|
|
122
|
-
"@heybox/
|
|
123
|
-
"@heybox/runtime": "~0.2.
|
|
124
|
-
"@heybox/runtime-
|
|
125
|
-
"@heybox/runtime-transport-fetch": "~0.2.0"
|
|
123
|
+
"@heybox/runtime": "~0.2.1",
|
|
124
|
+
"@heybox/runtime-policy": "~0.2.1",
|
|
125
|
+
"@heybox/runtime-transport-fetch": "~0.2.1"
|
|
126
126
|
},
|
|
127
127
|
"publishConfig": {
|
|
128
128
|
"registry": "https://registry.npmjs.org/",
|
package/skill/skill.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hb-sdk",
|
|
3
|
-
"skillVersion": "0.9.0
|
|
3
|
+
"skillVersion": "0.9.0+skill.aa24d6656331",
|
|
4
4
|
"sdk": {
|
|
5
5
|
"package": "@heybox/hb-sdk",
|
|
6
|
-
"version": "0.9.0
|
|
7
|
-
"compatibility": "0.9.0
|
|
6
|
+
"version": "0.9.0",
|
|
7
|
+
"compatibility": "0.9.0"
|
|
8
8
|
},
|
|
9
9
|
"distribution": {
|
|
10
10
|
"type": "npm",
|
|
11
11
|
"package": "@heybox/hb-sdk",
|
|
12
|
-
"version": "0.9.0
|
|
12
|
+
"version": "0.9.0",
|
|
13
13
|
"path": "skill"
|
|
14
14
|
},
|
|
15
15
|
"integrity": "sha256-aa24d6656331cbad8f6aae7735258a49d7f1a82f6e900415de53a1b93a30ddb8"
|
|
@@ -17,7 +17,7 @@ export interface NetworkMiniappPermissionDeclaration extends SimpleMiniappPermis
|
|
|
17
17
|
* @remarks
|
|
18
18
|
* 这是本地声明,不是运行时授权结果。仅需声明的权限按声明生效;要求平台批准的权限还需与远端批准
|
|
19
19
|
* 求交,network 的 useOfficialDomain 配置也需同时获批。显式声明中缺失某权限表示不请求该权限;
|
|
20
|
-
* SDK 0.9
|
|
20
|
+
* SDK 0.9 系列起项目必须提供该对象,0.8 历史产物未声明时另按迁移规则处理。
|
|
21
21
|
*/
|
|
22
22
|
export type MiniappPermissionDeclarations = Partial<Record<Exclude<MiniappPermissionKey, 'network'>, SimpleMiniappPermissionDeclaration> & {
|
|
23
23
|
network: NetworkMiniappPermissionDeclaration;
|
|
@@ -42,7 +42,6 @@ export declare function parseMiniappPermissions(value: unknown, options: {
|
|
|
42
42
|
sourceLabel?: string;
|
|
43
43
|
}): ParsedMiniappPermissions;
|
|
44
44
|
export declare function requiresExplicitPermissions(sdkVersion: string): boolean;
|
|
45
|
-
export declare function getMissingPermissionsWarning(sourceLabel?: string): string;
|
|
46
45
|
export declare function composeMiniappRuntimePermissions(local: ParsedMiniappPermissions, approvals: unknown): {
|
|
47
46
|
runtimePermissions: MiniProgramRuntimePermissionsSnapshot;
|
|
48
47
|
views: MiniappPermissionView[];
|
|
@@ -1315,9 +1315,11 @@ export interface FilesModule {
|
|
|
1315
1315
|
* 的 picker / `saveFile()` direct handle 共享 1024 上限,每个返回文件占用一个。
|
|
1316
1316
|
*
|
|
1317
1317
|
* `read` File 可调用 `readText()`、`readBytes()`、`exists()` 与 `stat()`;写入、创建及作为
|
|
1318
|
-
* 下载替换目标需要 `readwrite`。外部精确 File 无论 mode 都不能删除。Android
|
|
1319
|
-
*
|
|
1320
|
-
*
|
|
1318
|
+
* 下载替换目标需要 `readwrite`。外部精确 File 无论 mode 都不能删除。Android 已适配客户端
|
|
1319
|
+
* 支持精确 SAF 文件的 `readwrite` 选择,需系统返回写入授权;较早客户端仍会拒绝该模式。
|
|
1320
|
+
* `writeText()` / `writeBytes()` 先暂存完整内容再写入,最终 Provider 写入不是原子替换,
|
|
1321
|
+
* 失败时原文件可能为空或只写入部分内容。该授权不支持 `network.download()` 的原子替换。
|
|
1322
|
+
* 未指定模式时仍为只读;用户或 Provider 未授予写入权限时返回 `FILE_ACCESS_DENIED`。
|
|
1321
1323
|
*
|
|
1322
1324
|
* 新 PC Host 支持文件选择;Android/iOS 需要 `1.3.396+`,移动端继续以 `system.describe`
|
|
1323
1325
|
* 实际声明的 operation 为准;OHOS 同样按 Host 宣告能力启用。Web、Browser Dev Host、旧 Host
|
|
@@ -1407,6 +1409,12 @@ export interface FilesModule {
|
|
|
1407
1409
|
* {@link FileSystem.directory | files.sandbox.directory} 不打开选择器、无需用户手势、持久按
|
|
1408
1410
|
* Mini-program 隔离,也不占用该 direct-handle 配额。
|
|
1409
1411
|
*
|
|
1412
|
+
* 鸿蒙手机和平板的单目录选择需要系统 API 26.0.0 或以上;较早系统需具备
|
|
1413
|
+
* `SystemCapability.FileManagement.UserFileService.FolderSelection` 能力。
|
|
1414
|
+
* 同时要求当前客户端已适配并开放目录选择,不支持时抛出 `METHOD_FORBIDDEN`。
|
|
1415
|
+
* 不具备上述能力的 API 24 鸿蒙手机无法选择外部目录,声明 `filesystem` 或升级编译 SDK
|
|
1416
|
+
* 不会解除限制。单文件读写或导出可分别使用 `pickFiles()`、`saveFile()`,不授予父目录权限。
|
|
1417
|
+
*
|
|
1410
1418
|
* 新 PC Host 支持目录选择;Android/iOS 需要 `1.3.396+`,移动端继续以 `system.describe`
|
|
1411
1419
|
* 实际声明的 operation 为准;OHOS 同样按 Host 宣告能力启用。Web、Browser Dev Host、旧 Host
|
|
1412
1420
|
* 或 operation 集不完整时 fail closed,不提供 Blob/内存 fallback。页面代码不应按操作系统
|
|
@@ -1486,7 +1494,12 @@ export interface FilesModule {
|
|
|
1486
1494
|
* 创建空文件;同名目标返回 `FILE_ALREADY_EXISTS`。其他 Host 可以展示平台原生保存界面,
|
|
1487
1495
|
* 但成功结果仍只授权最终精确 File,且不能通过该 API 请求静默覆盖。
|
|
1488
1496
|
*
|
|
1489
|
-
*
|
|
1497
|
+
* Android 已适配客户端支持 `files.saveFile`,系统保存器返回精确 SAF 文件授权,不授予
|
|
1498
|
+
* 父目录权限。`writeText()` / `writeBytes()` 先暂存完整内容,再写入该目标;最终 Provider
|
|
1499
|
+
* 写入不是原子替换,失败时目标可能为空或部分写入,原内容不保证保留。该授权不支持
|
|
1500
|
+
* `network.download()` 的原子替换,导出请调用文件代理的写入方法。
|
|
1501
|
+
*
|
|
1502
|
+
* 新 PC、Android 与 iOS Host 支持该能力。OHOS 按 Host 实际宣告的
|
|
1490
1503
|
* operation 启用。Web、Browser Dev Host、旧 Host 或 operation 集不完整时 fail closed,不
|
|
1491
1504
|
* 提供 Blob/内存 fallback。页面代码不应仅按操作系统判断,应处理 `METHOD_FORBIDDEN`。
|
|
1492
1505
|
*
|
|
@@ -1520,10 +1533,12 @@ export interface FilesModule {
|
|
|
1520
1533
|
* @see {@link https://docs.xiaoheihe.cn/hb_sdk/guide/permissions | 权限声明}
|
|
1521
1534
|
*
|
|
1522
1535
|
* @since 0.8.0-alpha.2
|
|
1536
|
+
* @hbPlatform android
|
|
1523
1537
|
* @hbPlatform ios
|
|
1524
1538
|
* @hbPlatform ohos
|
|
1525
1539
|
* @hbPlatform windows
|
|
1526
1540
|
* @hbPlatform macos
|
|
1541
|
+
* @hbClient android numeric-dot \>= 1.3.396
|
|
1527
1542
|
* @hbClient ios numeric-dot \>= 1.3.396
|
|
1528
1543
|
* @hbClient ohos none
|
|
1529
1544
|
* @hbClient windows none
|
|
@@ -197,6 +197,14 @@ export interface MiniProgramNavigationModule {
|
|
|
197
197
|
* 由 Host 决定。`extra` 与分享扩展数据使用相同格式,目标小程序通过 `share.getExtra()` 读取。
|
|
198
198
|
* Runtime 会在 Host 边界再次校验,页面提供的字段不能覆盖目标路径或窗口展示参数。
|
|
199
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
|
+
*
|
|
200
208
|
* 移动端 Host 支持全部四类目标。当前 Windows/macOS PC Host 支持 `game_detail` 和
|
|
201
209
|
* `mini_program`,仍不支持 `user_detail`、`post_detail`;游戏详情只把 `appId` 交给导航,
|
|
202
210
|
* `gameType` 仍须合法,而 `page`、`hSrc`、`skuId` 不保证在 PC 生效。调用方应按目标和平台
|
package/types/vite/index.d.ts
CHANGED
|
@@ -179,7 +179,7 @@ export declare const HB_SDK_MINI_PROGRAM_MANIFEST_ACCESS_TOKEN_ENV = "HB_SDK_MIN
|
|
|
179
179
|
* `hb-sdk remote deploy` 将当前版本的 `network` 声明与远端批准结果求交并确认最终启用后,才会
|
|
180
180
|
* 建立 verified 上下文供插件读取内部
|
|
181
181
|
* `HB_SDK_RUNTIME_PERMISSION_CONTEXT` + `HB_SDK_RUNTIME_USE_OFFICIAL_DOMAIN` 组合跳过平台 CSP;单独设置
|
|
182
|
-
*
|
|
182
|
+
* 任一值无效。完全缺失权限声明的项目会直接拒绝构建;`useOfficialDomain` 不参与
|
|
183
183
|
* CSP 跳过决定。Runtime Gate、HTML 校验和 Manifest 生成始终保留。
|
|
184
184
|
*
|
|
185
185
|
* `HB_SDK_COMPANION_ARTIFACT_ACCESS_TOKEN`、`HB_SDK_MINI_PROGRAM_MANIFEST_ACCESS_TOKEN`、
|