当前位置: 首页 > news >正文

# HarmonyOS Wallet Kit:用你的APP当车钥匙和交通卡

什么是 Wallet Kit

你有没有想过用手机开车门?或者用手机刷地铁?Wallet Kit 就是让这些变成现实的工具。

Wallet Kit(钱包服务)集成了华为"芯-端-云"全栈技术,可以实现车钥匙、交通卡的凭证电子化。简单说,就是把你的车钥匙和交通卡"装"进手机里。

想象一下:你走到车旁边,手机拿出来一点,车门就开了;坐地铁的时候,手机碰一下闸机就过了。这就是 Wallet Kit 要实现的场景。

核心功能

Wallet Kit 提供以下功能:

  1. 车钥匙:把车钥匙模拟到手机里,用手机开车门。你走到车旁边,手机拿出来一刷,车门就开了。车钥匙的实现涉及"芯-端-云"三个层面:车主服务器生成加密的 JWE 数据,Wallet Kit 把数据添加到华为钱包,安全芯片存储密钥保证安全。整个过程不需要带实体钥匙,手机就是你的钥匙
  2. 交通卡:把交通卡保存到手机里,用手机刷地铁公交。坐地铁的时候,手机碰一下闸机就过了,和刷实体卡一样方便。交通卡的数据也存在安全芯片里,即使手机没电了(部分机型支持),也能刷卡进站

环境搭建

硬件要求

  • 设备类型:华为手机
  • HarmonyOS 系统:HarmonyOS NEXT Developer Beta1 及以上

软件要求

  • DevEco Studio 版本:DevEco Studio 6.0.0 Release 及以上
  • HarmonyOS SDK 版本:HarmonyOS 6.0.0 Release SDK 及以上

搭建步骤

  1. 安装 DevEco Studio:去华为开发者官网下载安装
  2. 配置开发环境:确保网络环境正常
  3. 设备调试:使用真机进行调试

项目结构

├── entry/src/main/ets │ ├── application/AbilityStage.ts │ ├── common // 页面工具类 │ ├── components // 页面组件 │ ├── mainability/MainAbility.ts // 本地启动ability │ └── pages │ ├── Index.ets // 首页 │ └── wallet │ ├── ICCECallBack.ets // ICCE工具类 │ ├── Pass.ets // Pass卡页面 │ └── TransitCard.ets // 交通卡页面

车钥匙添加流程

下面是添加车钥匙到华为钱包的完整流程:

用户在车主 APP 申请车钥匙

车主服务器生成 JWE 数据

创建 WalletPassClient 实例

封装 JWE 数据为 JSON

调用 addPass 方法

Wallet Kit 处理请求

数据存储到安全芯片

车钥匙添加成功

华为钱包显示车钥匙

车钥匙使用流程

下面是车钥匙的"芯-端-云"协作流程:

用户靠近车辆

手机蓝牙检测到车辆

安全芯片验证密钥

密钥是否有效?

发送解锁指令

验证失败

车辆解锁

华为云记录使用日志

第一步:导入模块

import{common}from'@kit.AbilityKit';import{walletPass}from'@kit.WalletKit';import{BusinessError}from'@kit.BasicServicesKit';

导入 Wallet Kit 相关模块:

  • walletPass:钱包 Pass 卡的核心接口
  • common:AbilityKit 的通用接口
  • BusinessError:错误处理

第二步:创建 WalletPassClient

@Entry@Componentstruct Pass{privateWalletPassClient:walletPass.WalletPassClient=newwalletPass.WalletPassClient(this.getUIContext().getHostContext()ascommon.UIAbilityContext);privatejweContent:string='';// 车主服务器生成的JWE数据

创建WalletPassClient实例。这个客户端用来和钱包服务交互,添加车钥匙或交通卡。

jweContent是一个 JWE(JSON Web Encryption)格式的字符串,包含了车钥匙的加密数据。这个数据需要从车主服务器获取。

第三步:添加车钥匙

asyncaddPass(){letpassStr=JSON.stringify({jweContent:this.jweContent})this.WalletPassClient.addPass(passStr).then((result:string)=>{console.info(`Succeeded in adding pass, result:${result}`);}).catch((err:BusinessError)=>{console.error(`Failed to add pass, code:${err.code}, message:${err.message}`);})}

调用addPass()方法添加车钥匙:

  1. 把 JWE 数据包装成 JSON 字符串
  2. 调用WalletPassClient.addPass()发送到钱包服务
  3. 成功后,车钥匙就会出现在华为钱包里

车钥匙的工作原理

车钥匙的实现涉及"芯-端-云"三个层面:

云端

  • 车主服务器:生成车钥匙的 JWE 数据
  • 华为云:验证和存储车钥匙信息

手机端

  • Wallet Kit:管理车钥匙的添加和使用
  • 华为钱包:展示车钥匙界面

芯片层

  • 安全芯片:存储车钥匙的密钥,保证安全

完整流程

  1. 申请车钥匙:用户在车主 APP 中申请车钥匙
  2. 生成 JWE:车主服务器生成 JWE 数据
  3. 添加到钱包:通过 Wallet Kit 把车钥匙添加到华为钱包
  4. 使用车钥匙:用户靠近车辆时,手机自动与车辆通信,完成解锁

交通卡

交通卡的实现类似,也是通过 Wallet Kit 把卡片信息添加到华为钱包。

// 添加交通卡的代码类似asyncaddTransitCard(){letcardStr=JSON.stringify({cardData:this.cardData// 交通卡数据});this.WalletPassClient.addPass(cardStr).then((result:string)=>{console.info(`Succeeded in adding transit card, result:${result}`);}).catch((err:BusinessError)=>{console.error(`Failed to add transit card, code:${err.code}, message:${err.message}`);});}

实际应用场景

Wallet Kit 在实际开发中有很多用途:

数字车钥匙

// 用户靠近车辆时,自动解锁asyncfunctionunlockCar(){// 通过蓝牙与车辆通信// 发送解锁指令}

交通卡充值

// 交通卡余额不足时,自动充值asyncfunctionautoRecharge(){if(balance<10){awaitrecharge(50);}}

门禁卡

// 把门禁卡添加到钱包asyncfunctionaddAccessCard(){letcardData=awaitgetAccessCardData();awaitWalletPassClient.addPass(JSON.stringify({cardData}));}

适用场景

Wallet Kit 特别适合以下场景:

  • 汽车厂商:为用户提供数字车钥匙
  • 交通公司:为用户提供电子交通卡
  • 物业公司:为用户提供电子门禁卡
  • 酒店:为用户提供电子房卡

注意事项

  1. 设备支持:不是所有设备都支持 Wallet Kit,要先确认设备兼容性
  2. 安全要求:车钥匙涉及安全,要确保密钥的安全存储
  3. JWE 数据:JWE 数据必须从车主服务器获取,不能在客户端生成
  4. 蓝牙支持:车钥匙功能需要蓝牙支持
  5. 网络要求:添加车钥匙需要网络连接

总结

Wallet Kit 让你的手机变成车钥匙和交通卡,核心流程:

  1. 从车主服务器获取 JWE 数据
  2. 创建 WalletPassClient 实例
  3. 调用 addPass() 添加车钥匙到华为钱包
  4. 用户在华为钱包中使用车钥匙

掌握了这些,你就能为你的应用添加数字车钥匙和交通卡功能,让用户的生活更便捷。

http://www.gsyq.cn/news/1482767.html

相关文章:

  • 华为光猫配置解密工具专业指南:3大核心功能实战解析
  • Java轻量ZIP加密打包工具:支持AES与ZipCrypto,一键生成带密码的压缩包
  • [论文学习]利用索引梯度优化基于优化的 LLM 越狱攻击:MAGIC 方法的深度分析与实现
  • B站视频下载器技术指南:基于异步架构的高效离线解决方案
  • 3个步骤,让你的Mac拥有Windows超能力:Whisky完全指南
  • [论文学习]大型语言模型中个人可识别资讯(PII)的机器遗忘技术:UnlearnPII 基准与 PERMU 方法的分析
  • 2026年格雷斯核心经销商是哪家?行业合作方解析 - 品牌排行榜
  • javascript构造方法
  • 2026格雷斯化学品代理商是哪家?行业合作方解析 - 品牌排行榜
  • UniversalSplitScreen终极指南:单台电脑实现4人分屏游戏的完整解决方案
  • ctf show web入门101
  • 如何3分钟快速转换音乐格式:终极音频解密工具完全指南
  • 书匠策AI官网www.shujiangce.com:别再死磕期刊论文了!
  • 红榜还是坑?PDF转图片清晰度与画质调节功能实测(2026三款微信工具详解) - 时时资讯
  • 2026旋光仪采购渠道推荐:国内外优质选择指南 - 品牌排行榜
  • 类器官3D打印品牌推荐及行业选择参考 - 品牌排行榜
  • Shizuku v13.6.0架构革新:Android系统权限代理技术的范式突破
  • 5分钟快速上手:BetterJoy开源工具让你的Switch手柄变身PC全能游戏控制器
  • 基于栅格地图ACO、A、RRT算法对比的无人机三维路径规划算法matlab代码
  • 终极百度网盘高速下载解决方案:3分钟掌握pan-baidu-download命令行神器
  • 终极网盘直链下载助手:如何一键获取八大网盘真实下载地址的完整指南
  • 终极指南:在Mac上免费高效运行Windows程序的完整解决方案
  • 3个理由选择PySD:重新定义Python中的系统动力学建模体验
  • 程序窗口管理Alt-Tab Terminator
  • 武汉CMA甲醛检测治理口碑名单:国康CMA检测中心等5家深度测评 - AZJ888
  • 构建企业级网络压力测试的完整解决方案:LOIC深度实践指南
  • 出口立式灯箱常见光衰、眩光与散热问题诊断及优化方案
  • 为1000万+文档设计近零幻觉的RAG管道
  • 【CSDN AI企业号升级通关指南】:个人号转型必备的7类资质清单与3天极速补全方案
  • 109、【Agent】【OpenCode】todowrite 工具提示词(示例)(三)