Aptos DApp 快速接入 OKX 钱包:UI 调用与链上交互完整指南

·

本指南面向Aptos链开发者,从零开始演示如何在去中心化应用(DApp)中一键集成 OKX 钱包连接 UI,并完成签名、上链等核心操作。无需关心复杂 SDK,只需几行代码即可在 Telegram 内唤起 OKX Mini Wallet,或在移动端跳转至 OKX App,流畅完成资产交互。

阅读本文你将掌握:


安装与初始化

1. 前置条件

npm install @okxconnect/ui

2. 创建 UI 连接器

在开始任何链上动作之前,需要先初始化 OKXUniversalConnectUI 对象,它掌管弹窗主题、语言、链配置等。

import { OKXUniversalConnectUI, THEME } from '@okxconnect/ui'

const okxUI = new OKXUniversalConnectUI({
  dappMetaData: {
    name: 'Aptos DEX Demo',
    icon: 'https://yourcdn.com/icon180x180.png' // 180×180 PNG,禁止 SVG
  },
  actionsConfiguration: {
    modals: 'all',                 // 交易前后均弹提示
    returnStrategy: 'tg://resolve' // Telegram 环境返回路径
  },
  uiPreferences: {
    theme: THEME.LIGHT            // 可选 LIGHT / DARK / SYSTEM
  },
  language: 'zh_CN'
})

连接钱包

发起连接

无论你想获取地址立即签名,第一步总是建立会话。

const res = await okxUI.connect({
  connectParams: {
    namespaces: {
      aptos: {
        chains: ['aptos:mainnet'], // 主网
        defaultChain: 'aptos:mainnet',
        methods: ['aptos_signMessage', 'aptos_signAndSubmitTransaction']
      }
    },
    sessionConfig: {
      redirect: 'tg://resolve'     // Telegram Mini Wallet 返回
    }
  }
})

console.log(res.accounts) // 钱包地址
console.log(res.methods)  // 支持的签名方法

成功后会返回:


一键完成签名与上链

场景一:签名消息(登陆或授权)

常见于无 Gas 操作,例如登录 DApp。

const signResult = await okxUI.request({
  method: 'aptos_signMessage',
  params: {
    message: '欢迎回到 Aptos DEX',
    nonce: Math.random().toString(36).substr(2),
    application: true,
    address: true,
    chainId: true
  }
})
console.log(signResult.signature)

场景二:签名并广播交易

组装交易体后,一行代码即可完成「签名 + 提交」。

const txData = {
  function: '0x1::coin::transfer',
  type_arguments: ['0x1::aptos_coin::AptosCoin'],
  arguments: [receiverAddress, '100000000'] // 0.1 APT
}

const txHash = await okxUI.request({
  method: 'aptos_signAndSubmitTransaction',
  params: { payload: txData }
})
console.log(`交易已提交:${txHash}`)

👉 想了解高阶玩法?点这里直达 Web3 最新交互范式!


FAQ:常见疑问 5 连答

  1. Q:在 Telegram 环境无法弹出钱包?
    A:检查开发者在 BotFather 设置的 returnStrategy 是否为 tg://resolve,并确认用户已更新到支持 Mini Wallet 的 OKX App。
  2. Q:用户反映点击后白屏?
    A:禁用 SVG 图标!UI 组件仅接受 PNG / ICO / JPG,推荐 180×180 PNG 图标。
  3. Q:如何自动切换主网/测试网?
    A:在 namespaces.aptos.chains 数组内按顺序写多链 ID,例如 ['aptos:mainnet', 'aptos:testnet'] 即可。
  4. Q:我只想读取用户地址,不想弹出「签名交易」的提示框怎么办?
    A:将 actionsConfiguration.modals 设置为 ['before'] 或者直接设成空数组 []
  5. Q:可以一次性连接 EVM 和 Aptos 双链吗?
    A:可以同时写 namespaces.eip155namespaces.aptos,UI 会自动请求用户授权对应链,但需保证钱包本身支持两条链。

检查与断开连接

// 会话是否存在
const isConnected = okxUI.isConnected()
console.log(isConnected)

// 强制断开,切换钱包
await okxUI.disconnect()

错误码快速对照


最佳实践小贴士

  1. 主题自适应:跟随用户系统色主题可减少突兀感,提高转化率。
  2. 错误兜底:永远捕获 try..catch,当用户拒绝或步骤中断时弹出友好提示并重置 UI。
  3. 链 ID 缓存:会话成功之后记录默认链,避免下一次再次弹窗询问。
    👉 解锁更多高级策略,来这里查看开发者实战案例!

全文约 1,500 字,如果照着示例逐步对接,30 分钟内即可让你的 Aptos DApp 拥有一流的钱包体验。祝开发顺利,与市场共赢!