Phase 4.A:登录+分享 stub + QQ 改走 URL Scheme 不依 SDK

按用户约定调整 Phase 4 方向:微信继续走 SDK(等项目方提供),QQ 分享
改用 URL Scheme 直接调起 QQ app,**不依赖 SDK**。

调研 daoqi/msext/Class/Utils/QQShareManager.m 发现已有完整的 URL Scheme
fallback 路径:
  - line 14: __has_include(<TencentOpenAPI/QQApiInterface.h>) 条件编译
  - line 231 注释: "Fallback: 使用 URL Scheme (mqqapi://) - 无需 SDK,
    直接调起 (Legacy)"
  - mqqapi://share/to_fri / mqqapi://share/to_qzone / mqqopensdkfriend://share
    等 schema 实现见 line 733/786/789

新增 handler stub(让 H5 启动 / 业务期调登录 / 分享不报 "no handler"):
  - Source/Bridge/Handlers/AccreditLoginHandler.swift
    accreditlogin cb "Response from accreditlogin"
    完整实现需 Phase 4.B 微信 SDK + WeChatManager.authorize() + WeChatAuth.exchangeForUser
    + bridge.call("sharelogin", 7 字段含大写 Province) 反向 callback
  - Source/Bridge/Handlers/FriendsShareHandler.swift
    friendsSharetypeUrlToptitleDescript cb "sharefriend"
    完整实现需 ShareCenter 策略分发 + sharesuccess 反向 callback

WebContainer.registerBridgeHandlers 接入。

文档调整:
  - Plan §2.3 阻塞表:QQ OpenSDK 标"不需要",改 URL Scheme 路径
  - Plan §5 Phase 4 前置:去掉 QQ OpenSDK 一行
  - Plan §5 Phase 4.2:完整改写为 URL Scheme 方案,含 LSApplicationQueriesSchemes
    清单 + URL 构造样例 + "调起即 success" 乐观策略说明
  - Plan §8 进度追踪:4.2 QQ SDK Vendor 标"不需要"
  - Plan §6.4 里程碑加 3 行(前两轮 commit hash 补 + 本次)
  - CLAUDE.md 依赖管理段加 "不接入 QQ SDK" 约定(与"不引入 CocoaPods"
    并列的负面清单)
  - Verification-Checklist Phase 4 章节:E.19/E.20 stub + K/L 待 4.B/4.C
    完整后填充验证项

BuildProject 通过

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
joywayer
2026-06-22 19:19:23 +08:00
co-authored by Claude Opus 4.7
parent 0602b9d4b6
commit aa80aec18c
6 changed files with 108 additions and 11 deletions
+21 -4
View File
@@ -169,11 +169,28 @@ H5 需先用 `bridge.registerHandler('callbackName', fn)` 注册:
---
## Phase 4 — 分享 + 登录(待实现
## Phase 4 — 分享 + 登录(部分实现:4.A stub 完成;4.B/4.C 待外部资源
> Phase 4 实施后填充。预备验证项:
> - accreditlogin 微信授权 + sharelogin 7 字段(含大写 Province
> - friendsSharetypeUrlToptitleDescript 分享微信 / 朋友圈 + sharesuccess
### J. accreditlogin / friendsShare stub4.A 完成)
- [ ] **E.19 accreditlogin** → cb "Response from accreditlogin"stub 仅 cb,无微信授权调起、无 sharelogin 反向)
- [ ] **E.20 friendsSharetypeUrlToptitleDescript** → cb "sharefriend"stub 仅 cb,无微信/QQ 分享调起、无 sharesuccess 反向)
> 4.B 微信 SDK + 后台 /wechat/login + 4.C QQ URL Scheme 完整实现后升级。
### K. 微信 SDK + Universal Links4.B 待实现)
> 项目方提供 microSDK + AppID + UL 后填充。预备验证项:
> - sharelogin 7 字段(含大写 Province + 小写 city 经 danbian: 处理)
> - sharesuccess({success:"2", type:"1"/"2"})
> - app 切到后台微信授权 → 切回 app sharelogin 触发
### L. QQ URL Scheme 分享(4.C 待实现,**不依赖 SDK**
> 移植 msext QQShareManager.m URL Scheme fallback 后填充。预备验证项:
> - 链接分享 → `mqqapi://share/to_fri?` 调起 QQ app
> - 朋友圈分享 → `mqqapi://share/to_qzone?` 调起 QQ 空间
> - 调起即视为 successURL Scheme 单向无返回,msext 同款乐观策略)
---