Files
youle_app_ios_v2/docs
joywayerandClaude Opus 4.7 a06a18c3aa Design §8.7:新增 ShakeKit + 4 项接口实现骨架
覆盖 §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>
2026-06-22 07:31:08 +08:00
..
2026-06-21 19:39:22 +08:00