hi-client/邀请文档.md

43 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 文档更新内容补充
- 收录 OpenInstall 配置参数:
- appkeyalf57p
- iOS Associated Domainsapplinks:alf57p.oplinking.com
- 其余方案保持既定约束:静默邀请、仅在 kr_deviceLogin 成功后调用、仅打印日志、不改动 UI、不清理本地、桌面平台从包名截取邀请码、网络层 silentInvite 标识屏蔽响应弹窗但保留请求拦截。
## 《说明文档.md》新增/修订片段(拟写)
### OpenInstall 配置
- 版本openinstall_flutter_plugin:^2.5.7
- appkeyalf57p
- iOS
- Associated Domainsapplinks:alf57p.oplinking.com
- 在 AppDelegate 转发 openURL/Universal Links 到插件
- Android
- Manifest 配置深链与自定义 scheme与 iOS 域名对应),按官方文档完成
### 触发点与静默行为
- 触发点await authApi.kr_deviceLogin() 成功分支([app_run_data.dart](file:///Users/apple/Documents/source/hi-client/lib/app/common/app_run_data.dart#L410-L460)),在 kr_saveUserInfo 之前调用 KRUserApi().hi_inviteCode(inviteCode)
- 静默:仅打印控制台日志,不走响应弹窗,不清理本地状态,不重试
### 桌面平台Windows/macOS
- **识别规范**:文件名或路径中包含 `ic-<code>`,例如 `HiFastVPN-ic-888.dmg`
- **解析逻辑(分层检测策略)**
1. **直接路径匹配 (Win/Mac 通用)**:从当前运行的 `.exe``.app` 全路径中正则提取。这是最直接、最高效的手段。
2. **安装渠道配置文件 (Windows 独有)**:读取程序安装目录下的 `channel.txt`。支持 Inno Setup 在安装时通过 `{srcexe}` 获取安装包名并自动生成该文件。这为 Windows 提供了最稳定的安装后识别方案。
3. **挂载源追溯 (macOS 独有)**:通过 `hdiutil info` 关联运行中的 App 及其原始 `.dmg` 文件名。专门解决“程序未改名但在已命名的镜像中运行”的场景。
4. **下载元数据提取 (macOS 独有)**:通过 `mdls` 读取文件扩展属性。即便安装包已清理,只要系统保留了下载来源记录,仍可识别。
5. **下载目录智能扫描 (Win/Mac 通用)**作为最后兜底扫描用户下载目录Downloads下最近修改的、符合命名规范的镜像或安装包`.dmg`/`.exe`)。这一策略能有效解决用户下载后虽然安装程序没改名,但原始安装包依然留在下载文件夹中的场景。
- **调试支持**:当 `inviteDebugMode` 开启且识别到邀请码时,桌面端会弹出确认对话框。
### 网络层标识silentInvite
- 载体Dio RequestOptions.extra可选 Header: X-Client-Mode: invite_silent
- 行为:保留请求拦截;屏蔽响应弹窗与登录失效弹窗;错误向上传递,调用方仅打印日志
### 测试清单
- iOS UL 验证applinks:alf57p.oplinking.com
- Android 深链验证
- 设备登录成功后静默绑定日志验证
- 桌面解析包名验证
## 交付
- 经你确认后,我将把上述内容写入《说明文档.md》目前仍不进行代码改动。