实例方法

在 TradingWidget.create() 创建实例后,控制已嵌入的交易 iframe。

以 Markdown 格式查看

方法总览

方法用途
destroy()移除 iframe 并释放事件监听。
getState()读取当前 SDK 生命周期状态。
whenReady()等待 iframe 完成初始化。
setSymbol(symbol)切换 iframe 内交易对。
setTheme(theme)更新 iframe 主题参数。
setLocale(locale)切换 iframe 语言。
setSize(width, height)调整 iframe 尺寸。
reload()重新加载当前 iframe。
refreshAuth(reason)触发 widget 鉴权刷新流程。
setTokenProvider(provider)替换 partner-token 模式使用的 provider。
on(event, handler)订阅运行时事件,并返回取消订阅函数。

destroy()

移除 iframe、清理监听,并对当前实例触发一次 destroyed。

1widget.destroy()

getState()

读取当前 widget 实例的生命周期状态。

1const state = widget.getState()

返回值包括 loading、authenticating、ready、error 和 destroyed。

whenReady()

等待 iframe 初始化完成后,再执行依赖交易 iframe 的页面逻辑。

1await widget.whenReady()

setSymbol(symbol)

切换 iframe 内交易对。如果 iframe 仍在初始化,SDK 会先缓存指令,ready 后再发送。

1widget.setSymbol('ETHUSDT')

setTheme(theme)

更新嵌入交易 iframe 使用的主题参数。

1widget.setTheme('dark')
2widget.setTheme('light')

setLocale(locale)

切换 iframe 语言。支持 en、en-US 和 zh-CN。

1widget.setLocale('en')
2widget.setLocale('en-US')
3widget.setLocale('zh-CN')

setSize(width, height)

调整 iframe DOM 尺寸,并通知 iframe 当前外层尺寸。数字会转成 px。

1widget.setSize('100%', 720)

reload()

重新加载当前 iframe,并等待它再次初始化完成。

1widget.reload()

refreshAuth(reason)

要求 iframe 刷新当前鉴权流程。可选 reason 会传入流程中用于日志和状态处理。

1widget.refreshAuth('manual')

setTokenProvider(provider)

替换 partner-token 模式下使用的 tokenProvider。iframe 请求新 embed token 时,SDK 会调用该 provider。

1widget.setTokenProvider(async ({ channelId, symbol, reason }) => {
2 const resp = await fetch('/api/trading/embed-token', {
3 method: 'POST',
4 credentials: 'include',
5 headers: { 'Content-Type': 'application/json' },
6 body: JSON.stringify({ channelId, symbol, reason }),
7 })
8
9 return resp.json()
10})

on(event, handler)

订阅运行时事件。返回的函数用于移除该监听。

1const off = widget.on('order_created', (event) => {
2 console.log(event)
3})
4
5off()