You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何组装多段Smart Health Card二维码串一键添加至Apple Wallet与Health

处理多段Smart Health Cards并添加至Apple Wallet与Health的方案

核心逻辑

多段Smart Health Card(SHC)二维码是完整数据拆分后的分段传输格式,正确组装方式如下:

  1. 提取分段数据:对每段shc:/[段号]/[总段数]/[数据]格式的字符串,移除前缀部分,仅保留最后的[数据]段
  2. 按序拼接:严格按照段号从小到大的顺序,将所有提取到的数据段拼接成一个完整字符串
  3. 生成跳转链接:将拼接后的完整字符串替换到Apple的跳转链接模板中,得到最终可调用的链接:
    https://redirect.health.apple.com/SMARTHealthCard/[完整拼接数据]
    

示例操作

针对你提供的三段SHC:

shc:/1/3/567629095243206034602...
shc:/2/3/315057062436201156761...
shc:/3/3/634538347210283310097...

  1. 分别提取每段的数据部分:567629095243206034602...、315057062436201156761...、634538347210283310097...
  2. 按段号顺序拼接为:567629095243206034602...315057062436201156761...634538347210283310097...
  3. 生成最终链接:
    https://redirect.health.apple.com/SMARTHealthCard/567629095243206034602...315057062436201156761...634538347210283310097...
    

Swift实现要点

  • 排序分段:如果获取到的分段顺序不确定,先提取段号(shc:/[段号]/...中的第二个部分)进行排序,确保拼接顺序正确
  • 提取数据:可通过字符串分割实现,示例代码片段:
    func extractSHCData(from shcString: String) -> String? {
        let components = shcString.components(separatedBy: "/")
        guard components.count == 4 else { return nil }
        return components[3]
    }
    
  • 触发添加流程:将拼接后的完整数据插入跳转链接模板,通过UIApplication.shared.open(_:)调用该链接,即可触发「添加至Apple健康与钱包」的流程

内容的提问来源于stack exchange,提问作者Barb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:15:43