在 Aptos 生态中开发去中心化应用(DApp)时,为用户提供流畅的钱包连接体验至关重要。除了 SDK 接入方式外,OKX 还提供了完整的 UI 界面解决方案,让开发者能够快速集成钱包功能。如果您的 DApp 运行在 Telegram 环境中,用户可以选择唤起移动端 App 钱包,或直接使用 Telegram Mini 钱包进行操作,大大提升了用户体验的灵活性。
安装与初始化
开始之前,请确保将 OKX App 更新至 6.92.0 或更高版本,以保证功能的完整支持。
通过 npm 可以轻松安装 OKX Connect:
npm install @okx/web3-connect初始化过程中,需要创建一个提供 UI 界面的对象,该对象将用于后续的钱包连接、交易发送等操作。
核心配置参数
dappMetaData(对象)
name(字符串):应用名称,不会作为唯一标识icon(字符串):应用图标的 URL。支持 PNG、ICO 等格式,推荐使用 180x180px 的 PNG 图标
actionsConfiguration(对象)
modals:交易过程中的提醒界面展示模式,默认为 'before'returnStrategy:针对 App 钱包,指定用户签署/拒绝请求时的返回策略tmaReturnUrl:Telegram Mini Wallet 的返回策略,一般配置为 'back'
uiPreferences(对象)
theme:界面主题,支持深色、浅色和系统默认language:界面语言,支持多种语言选项,默认为英文
初始化完成后,将返回一个 OKXUniversalConnectUI 对象,用于后续操作。
连接钱包流程
连接钱包是获取用户钱包地址的必要步骤,地址将作为用户标识和交易签名的关键参数。
连接参数配置
namespaces(必需命名空间)
- key 为 "aptos",包含链 ID 信息
- 如果任何请求的链不被钱包支持,连接将被拒绝
optionalNamespaces(可选命名空间)
- 同样 key 为 "aptos"
- 即使某些链不被支持,连接仍可继续进行
sessionConfig(会话配置)
redirect:连接成功后的跳转参数,Telegram 环境可设置为 "tg://resolve"
连接返回值
连接成功后,将返回包含以下信息的 Promise:
- 会话标识符(topic)
- 已连接的命名空间信息
- 链信息和账户详情
- 支持的方法列表
- DApp 相关信息
连接并签名操作
此操作允许在连接钱包的同时请求对数据进行签名,签名结果将通过 "connect_signResponse" 事件回调。
请求参数说明
除了基本的连接参数外,还需要提供:
signRequest(签名请求)
method:请求的方法名称,Aptos 系支持 "aptos_signMessage"chainId:执行方法所在的链 IDparams:方法对应的参数
此操作同时最多只能支持一个签名方法。
钱包状态管理
检查连接状态
通过简单的方法调用,可以获取当前钱包是否已连接的状态,返回值为布尔类型。
断开钱包连接
当需要切换连接钱包时,应先断开当前连接。此操作会删除当前会话信息,确保连接状态的清晰管理。
交易操作详解
准备工作
首先需要创建 OKXAptosProvider 对象,传入 OKXUniversalProvider 作为构造函数参数。
获取钱包信息
请求参数:
chain(可选):链 ID,不传则默认使用第一个连接的 Aptos 系地址
返回值:
- 钱包地址和公钥信息
消息签名
请求参数:
message(对象):包含待签名消息的各种配置选项chain(建议提供):请求签名执行的链
返回值:
- 包含完整签名信息的对象,包括地址、应用信息、链 ID、完整消息和签名结果
交易签名与执行
单笔交易签名:
- 传入交易数据对象和链信息
- 返回签名结果的 Buffer
多笔交易签名并上链:
- 支持批量交易处理
- 返回交易哈希字符串
事件与错误处理
事件监听
在连接、交易和断开连接过程中,可以通过事件监听机制获取操作状态变化。
错误代码说明
系统定义了完善的错误代码体系,帮助开发者快速定位问题:
- 未知异常:处理意外错误情况
- 连接状态错误:包括已连接和未连接时的错误操作
- 用户拒绝:用户取消操作时的错误代码
- 支持性错误:方法、链或钱包不支持的情况
- 连接异常:网络或通信问题
常见问题
如何选择适合的集成方式?
如果您的 DApp 需要完整的用户界面支持,UI 集成方式是最佳选择。它提供了现成的界面组件,减少了开发工作量。对于需要高度定制化的场景,可以考虑使用 SDK 直接集成。
支持哪些链和命名空间?
目前主要支持 Aptos 系的链,命名空间 key 为 "aptos"。在连接请求中,需要正确配置链 ID 信息,确保钱包支持所请求的链。
如何处理用户拒绝签名的情况?
当用户拒绝签名时,系统会抛出 USER_REJECTS_ERROR 错误码。建议在代码中捕获此异常,并给用户友好的提示,说明签名操作已取消。
在多链环境下需要注意什么?
当连接多条链时,务必在签名和交易操作中明确指定 chain 参数,避免操作在错误的链上执行。同时要注意检查钱包是否支持所有请求的链。
Telegram 环境有哪些特殊配置?
在 Telegram Mini App 中,需要正确配置 returnStrategy 和 tmaReturnUrl 参数,确保用户在操作完成后能够正确返回 DApp 界面。推荐使用 "back" 策略来自动关闭钱包界面。
如何优化图标显示效果?
为了获得最佳的图标显示效果,建议使用 180x180px 的 PNG 格式图标。避免使用 SVG 格式,因为可能不被支持。图标清晰度直接影响用户对 DApp 的信任度。
通过本文介绍的 UI 集成方式,您可以快速为 Aptos DApp 添加钱包连接功能,提供流畅的用户体验。合理利用各种配置选项和错误处理机制,可以打造出稳定可靠的 Web3 应用。