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