atomm 对象

atomm 是平台 SDK(platform-sdk.js)加载后注入到页面的全局对象,提供平台能力与 UI 工具。在生成器代码中可直接使用。

生命周期 atomm.lifecycle

通过 lifecycle.on 注册平台生命周期钩子:

atomm.lifecycle.on('export', async () => { ... })

UI 提示 atomm.ui

弹出平台全局提示(toast)。参数为对象:

  • type:可选 success / warning / error / info,默认 success
  • message:提示文案
  • duration:可选,展示时长,单位秒0 表示不自动关闭;不传默认 3 秒

toast() 返回本条提示的 id;用 closeToast(id) 主动关闭。duration: 0 的常驻提示必须这样关,否则会一直挂着。

atomm.ui.toast({ type: 'success', message: '已完成' })

// 指定展示 5 秒
atomm.ui.toast({ type: 'info', message: '正在处理…', duration: 5 })

// duration: 0 常驻不自动关闭,任务完成后用 closeToast 关掉
const id = await atomm.ui.toast({ type: 'info', message: '导出中…', duration: 0 })
// …任务完成…
await atomm.ui.closeToast(id)
toast 必须传对象

传字符串(如 toast('已完成'))不会生效——平台只读取对象上的 messagetype,字符串会被当成空消息。ui 命名空间目前提供 toast(返回提示 id)与 closeToast

语言 atomm.app

平台当前的界面语言,用来让生成器跟着平台一起本地化。

// 当前语言短码,必定是受支持的 17 种之一
const locale = await atomm.app.getLocale()

// 全部受支持语言(短码 + 展示名),用于做与平台一致的语言选择器
const locales = await atomm.app.getSupportedLocales()
// → [{ code: 'zh', name: '简体中文' }, { code: 'en', name: 'English' }, …]

启动时调一次 getLocale() 决定初始语言就够了。这是一次性读取,不是订阅——平台切语言会整页重载,你的应用随之重启并读到新值,不需要自己监听变化。

getLocale() 返回的一定是下表这 17 种之一,但你的应用未必都翻译了。拿到没有对应文案的语言时,回退到英文或你自己的默认语言。

短码展示名语言
zh简体中文简体中文
enEnglish英语
zh-hant繁體中文繁体中文
deDeutsch德语
esEspañol西班牙语
frFrançais法语
itItaliano意大利语
ja日本語日语
ko한국어韩语
ruРусский俄语
ukУкраїнська乌克兰语
slSlovenščina斯洛文尼亚语
thไทย泰语
plPolski波兰语
csČeština捷克语
idBahasa Indonesia印尼语
viTiếng Việt越南语

表格顺序即 getSupportedLocales() 的返回顺序,「展示名」就是它返回的 name,做语言选择器直接用即可。

本地怎么测多语言

开发工具包的「模拟器」里有「预览语言」下拉,切换会改变 getLocale() 的返回值并重载生成器,不用真到平台上切语言。见开发工具包

用户 atomm.user

// 当前是否已登录(只回布尔,不含 token 与个人信息)
const loggedIn = await atomm.user.isLoggedIn()

// 未登录时主动拉起登录弹窗,等用户登录完成后继续;返回最终是否已登录
if (!loggedIn) {
  const ok = await atomm.user.login()
  if (!ok) return // 用户取消或登录失败
}
// 到这里已登录,继续你的逻辑
login 在用户手势里调用

login() 会弹出登录窗口,请在用户点击等手势的回调里调用,避免被浏览器弹窗拦截。登录是耗时交互,平台已为它放宽超时(约 5 分钟),无需你自己加超时。

安全调用

不确定是否运行在平台内时,用可选链避免报错:

window.atomm?.ui?.toast?.({ type: 'info', message: 'hi' })
Esc
输入关键词搜索全部文档 · 切换 · 打开