接入移动壳原生触觉反馈

H5 HostBridge 增加 haptics.impact 受控调用入口

运行时点击反馈优先请求 Expo 触觉能力并保留浏览器震动回退

补充触觉反馈测试和宿主壳能力文档
This commit is contained in:
2026-06-17 23:57:46 +08:00
parent b03c910f49
commit 78afd81269
10 changed files with 240 additions and 21 deletions

View File

@@ -12,6 +12,7 @@ import {
openHostShareGrid,
openWechatMiniProgramShareGridPage,
postWechatMiniProgramMessage,
requestHostHapticsImpact,
requestHostLogin,
requestHostPayment,
requestWechatMiniProgramPayment,
@@ -311,6 +312,9 @@ describe('hostBridge', () => {
await expect(
writeHostClipboardText({ text: '作品号 PZ-1' }),
).resolves.toBe(true);
await expect(requestHostHapticsImpact({ style: 'medium' })).resolves.toBe(
true,
);
expect(invoke).toHaveBeenCalledWith('host_bridge_request', {
request: expect.objectContaining({
@@ -340,6 +344,14 @@ describe('hostBridge', () => {
},
}),
});
expect(invoke).toHaveBeenCalledWith('host_bridge_request', {
request: expect.objectContaining({
method: 'haptics.impact',
payload: {
style: 'medium',
},
}),
});
});
test('原生 App 宿主不支持能力时回退到 H5 路径', async () => {
@@ -373,6 +385,9 @@ describe('hostBridge', () => {
await expect(
writeHostClipboardText({ text: '作品号 PZ-1' }),
).resolves.toBe(false);
await expect(requestHostHapticsImpact({ style: 'light' })).resolves.toBe(
false,
);
});
test('普通浏览器不处理宿主文本导出', async () => {