是否可以通过自定义URL启动iOS App Clips?
自定义URL启动iOS App Clips实现方案
启动可行性说明
可以通过自定义URL启动App Clips,线上环境和测试环境对应不同的实现方式:
- 线上正式环境:使用关联域名通用链接实现。首先在苹果开发者后台给App Clips配置
Associated Domains,格式为appclips:你的业务域名,同时在对应域名的.well-known目录下放置apple-app-site-association校验文件完成关联,用户访问该域名下的对应路径URL即可唤起App Clips。 - 开发测试环境:可以直接给App Clips配置自定义URL Scheme,测试时直接访问
自定义scheme://路径即可快速唤起,该方式不可用于线上正式发布。
避免用户重复录入信息的落地方法
核心逻辑是通过URL携带加密的用户信息参数,App Clips启动后直接解析参数填充信息,不需要用户二次输入,具体步骤:
- 构造带加密参数的自定义URL:将用户已录入的标识信息(比如用户ID、手机号、已填写的表单字段)做对称加密后,拼接为URL的查询参数,示例格式:
https://你的业务域名/clip入口路径?user_info=加密后的用户信息字符串 - App Clips内解析参数填充:在App Clips的启动回调中获取启动URL,解密后提取用户信息直接填充到对应表单位置。参考代码:
// Swift代码示例:App Clips接收启动URL并解析参数 func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let launchURL = userActivity.webpageURL, let urlComponents = URLComponents(url: launchURL, resolvingAgainstBaseURL: true) else { return } // 提取加密的用户信息参数 guard let encryptedUserInfo = urlComponents.queryItems?.first(where: { $0.name == "user_info" })?.value else { return } // 解密后得到用户原始信息,直接填充表单即可 let decryptedUserInfo = 你的解密方法(encryptedUserInfo) }
- 跨App信息同步:如果用户后续从App Clips跳转安装你的完整App,可以通过App Group共享数据、通用剪贴板或者iCloud Keychain把已录入的用户信息同步到完整App中,实现全流程无重复录入。
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

