a06a18c3aa1bf96364a31f5da0b3e4e7a5811e31
覆盖 §3.1 [7]startshake / [8]stopshake / [9]SwitchShake +
§3.2 [5]shakeEnd 反向 callback 共 4 项接口。
§8.7.1 ShakeKit module 骨架:
- canShake / canVoice 开关位(@MainActor 实例属性,取代 msext 全局变量)
- handleMotionEnded(.motionShake) 集中处理:判 canShake → 播音效 → 触发 callback
- shake_sound_male.mp3 复用 AudioKit.AudioPlayer.playOnce 统一路径
§8.7.1 接入 VC:
- WebContainerViewController.canBecomeFirstResponder = true
- viewDidAppear 调 becomeFirstResponder(必要,否则 motionEnded 不触发)
- motionEnded(_:with:) 转发到 shakeKit.handleMotionEnded
§8.7.2 H5 handler 实现:
- 【7】startshake : canshake=YES + cb "startshake from accreditlogin"
(字面字符串带 "from accreditlogin" 后缀沿用历史)
- 【8】stopshake : canshake=NO + cb 同上
- 【9】SwitchShake : data int → canvoice = (1==YES) + cb "SwitchShake"
- 反向 [5]shakeEnd: data=nil,由 motionEnded → onShakeEnded 触发
§8.7.3 与 msext 6 维度差异表(全局变量 → 实例属性 / 音效统一 /
motionEnded 集中处理 / canBecomeFirstResponder 基类统一 / responseCallback 字面保留)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
No description provided
24 MiB
Languages
Swift
94.5%
Objective-C++
2.9%
JavaScript
1.8%
C
0.6%
Objective-C
0.2%