跳到导航

實例方法

在 TradingWidget.create() 之後控制創建的小部件實例。

以 Markdown 格式查看

方法總結

方法目的
破壞()刪除 iframe 並釋放事件偵聽器。
getState()讀取當前的 SDK 生命週期狀態。
whenReady()等待 iframe 完成初始化。
setSymbol(符號)在 iframe 內切換交易對。
setTheme(主題)更新 iframe 主題參數。
setLocale(區域設置)切換 iframe 語言。
setSize(寬度,高度)更新 iframe 尺寸。
重新加載()重新加載當前的 iframe。
refreshAuth(原因)觸發小部件身份驗證刷新流程。
setTokenProvider(提供者)替換partner-token模式使用的提供者。
on(事件,處理程序)訂閱運行時事件並接收取消訂閱函數。

破壞()

刪除 iframe,清除偵聽器,併為當前實例發出銷燬一次。

widget.destroy()

getState()

讀取小部件實例的當前生命週期狀態。

const state = widget.getState()

返回值包括加載、驗證、就緒、錯誤和銷燬。

whenReady()

等待 iframe 完成初始化,然後再運行相關的 UI 邏輯。

await widget.whenReady()

setSymbol(符號)

在 iframe 內切換交易對。如果 iframe 仍在初始化,SDK 將命令排隊並在就緒後發送。

widget.setSymbol('ETHUSDT')

setTheme(主題)

更新嵌入式交易 iframe 使用的主題參數。

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

setLocale(區域設置)

切換 iframe 語言。支持的值為 en、en-US 和 zh-CN。

widget.setLocale('en')
widget.setLocale('en-US')
widget.setLocale('zh-CN')

setSize(寬度,高度)

更新 iframe DOM 大小並通知 iframe 新的外部大小。數值轉換為 px。

widget.setSize('100%', 720)

重新加載()

重新加載當前的 iframe 並等待它再次初始化。

widget.reload()

refreshAuth(原因)

要求 iframe 刷新當前的身份驗證流程。轉發可選的原因值以進行日誌記錄和流量控制。

widget.refreshAuth('manual')

setTokenProvider(提供者)

替換合作伙伴令牌模式使用的 tokenProvider。當 iframe 請求新的嵌入令牌時,SDK 調用提供程序。

widget.setTokenProvider(async ({ channelId, symbol, reason }) => {
const resp = await fetch('/api/trading/embed-token', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ channelId, symbol, reason }),
})
return resp.json()
})

on(事件,處理程序)

訂閱運行時事件。返回的函數刪除監聽器。

const off = widget.on('order_created', (event) => {
console.log(event)
})
off()

相關小部件指南

當前 v1 運行時中的其他方法

方法目的
whenRendered()等待iframe的渲染通知;這與準備是分開的。
setPage(page)請求當前實例中支持的產品頁面。它不會改變資金環境。
prepareForRecreate()請求一個現成的iframe,準備更換;返回一個承諾,如果不可用、繁忙或超時,可以拒絕。
cancelRecreate()取消待處理/準備好的替換流程。
TradingWidget.validateOptions(options)在創建實例之前驗證初始化選項。

對於用戶或真實/演示環境更改,請銷燬舊實例並使用目標身份驗證和模式創建一個新實例。不要使用 setPage 作為環境開關。在使用可選方法之前檢查功能。

if (TradingWidget.capabilities.methods.includes('whenRendered')) {
await widget.whenRendered();
}
if (TradingWidget.capabilities.pages.includes('up-down')) {
widget.setPage('up-down');
}