Skip to content

WebApp 方法 ​

window.aiaxchat.WebApp 对象提供以下方法来控制 Mini App 的行为和交互。

生命周期 ​

ready ​

javascript
aiaxchat.WebApp.ready()

通知客户端 Mini App 已准备就绪,可以显示。建议在页面加载完成后尽早调用。

close ​

javascript
aiaxchat.WebApp.close()

关闭 Mini App。

isVersionAtLeast ​

javascript
aiaxchat.WebApp.isVersionAtLeast(version)

检查当前客户端版本是否满足要求。

参数类型必填描述
versionString是需要的最低版本号,如 "7.10"

返回值:Boolean

UI 控制 ​

setHeaderColor ​

javascript
aiaxchat.WebApp.setHeaderColor(color)

设置 Mini App 标题栏颜色。

参数类型必填描述
colorString是颜色关键字(bg_color、secondary_bg_color)或十六进制颜色值

setBackgroundColor ​

javascript
aiaxchat.WebApp.setBackgroundColor(color)

设置 Mini App 背景颜色。

参数类型必填描述
colorString是颜色关键字或十六进制颜色值

setBottomBarColor ​

javascript
aiaxchat.WebApp.setBottomBarColor(color)

设置底部栏颜色。Bot API 7.10+

参数类型必填描述
colorString是颜色关键字或十六进制颜色值

enableClosingConfirmation ​

javascript
aiaxchat.WebApp.enableClosingConfirmation()

启用关闭确认。启用后,用户关闭 Mini App 时会弹出确认对话框。

disableClosingConfirmation ​

javascript
aiaxchat.WebApp.disableClosingConfirmation()

禁用关闭确认。

enableVerticalSwipes ​

javascript
aiaxchat.WebApp.enableVerticalSwipes()

启用垂直滑动手势,允许用户通过向下滑动关闭或最小化 Mini App。Bot API 7.7+

disableVerticalSwipes ​

javascript
aiaxchat.WebApp.disableVerticalSwipes()

禁用垂直滑动手势。Bot API 7.7+

requestFullscreen ​

javascript
aiaxchat.WebApp.requestFullscreen()

请求全屏模式。Bot API 8.0+

exitFullscreen ​

javascript
aiaxchat.WebApp.exitFullscreen()

退出全屏模式。Bot API 8.0+

lockOrientation ​

javascript
aiaxchat.WebApp.lockOrientation()

锁定当前屏幕方向。Bot API 8.0+

unlockOrientation ​

javascript
aiaxchat.WebApp.unlockOrientation()

解锁屏幕方向。Bot API 8.0+

展开与滚动 ​

expand ​

javascript
aiaxchat.WebApp.expand()

将 Mini App 展开到最大可用高度。

requestViewport ​

javascript
aiaxchat.WebApp.requestViewport()

请求刷新视口信息。

数据与通信 ​

sendData ​

javascript
aiaxchat.WebApp.sendData(data)

向 Bot 发送数据。调用后 Mini App 将关闭,数据将通过 web_app_data 服务消息发送给 Bot。

参数类型必填描述
dataString是要发送的数据,长度 1-4096 字节

注意

此方法仅在 Mini App 通过 Keyboard Button 启动时可用。

switchInlineQuery ​

javascript
aiaxchat.WebApp.switchInlineQuery(query, chat_types)

切换到 inline 模式,在指定的聊天类型中插入 inline 查询。Bot API 6.7+

参数类型必填描述
queryString是要插入的 inline 查询文本
chat_typesArray of String否允许的聊天类型:"users"、"bots"、"groups"、"channels"

链接与导航 ​

javascript
aiaxchat.WebApp.openLink(url, options)

在外部浏览器中打开链接。

参数类型必填描述
urlString是要打开的 URL
optionsObject否配置项
options.try_instant_viewBoolean否是否尝试使用 Instant View 打开
javascript
aiaxchat.WebApp.openaiaxchatLink(url)

在应用内打开 aiaxchat 链接。

参数类型必填描述
urlString是aiaxchat 链接(https://t.me/...)

分享与社交 ​

shareToStory ​

javascript
aiaxchat.WebApp.shareToStory(media_url, params)

分享内容到故事。Bot API 7.8+

参数类型必填描述
media_urlString是媒体文件 URL(图片或视频)
paramsObject否分享参数
params.textString否附加文字说明
params.widget_linkObject否小组件链接
params.widget_link.urlString否链接 URL
params.widget_link.nameString否链接显示名称

shareMessage ​

javascript
aiaxchat.WebApp.shareMessage(msg_id, callback)

分享由 Bot 准备的消息到聊天。Bot API 8.0+

参数类型必填描述
msg_idString是由 Bot 预先准备的消息 ID
callbackFunction否回调函数,参数 sent(Boolean)表示是否发送成功

setEmojiStatus ​

javascript
aiaxchat.WebApp.setEmojiStatus(custom_emoji_id, params, callback)

为用户设置自定义 emoji 状态。Bot API 8.0+

参数类型必填描述
custom_emoji_idString是自定义 emoji ID
paramsObject否参数
params.durationInteger否状态持续时间(秒)
callbackFunction否回调函数,参数 set(Boolean)表示是否设置成功

downloadFile ​

javascript
aiaxchat.WebApp.downloadFile(params, callback)

请求下载文件。Bot API 8.0+

参数类型必填描述
paramsObject是下载参数
params.urlString是文件下载 URL
params.file_nameString是建议的文件名
callbackFunction否回调函数,参数 accepted(Boolean)表示用户是否同意下载

事件 ​

onEvent ​

javascript
aiaxchat.WebApp.onEvent(eventType, eventHandler)

订阅事件。详见事件系统。

参数类型必填描述
eventTypeString是事件名称
eventHandlerFunction是事件处理函数

offEvent ​

javascript
aiaxchat.WebApp.offEvent(eventType, eventHandler)

取消订阅事件。

参数类型必填描述
eventTypeString是事件名称
eventHandlerFunction是之前注册的事件处理函数

使用示例 ​

javascript
const sw = window.aiaxchat.WebApp;

// 初始化
sw.ready();
sw.expand();

// 设置 UI
sw.setHeaderColor('#1a1a2e');
sw.setBackgroundColor('#16213e');
sw.enableClosingConfirmation();

// 监听主题变化
sw.onEvent('themeChanged', () => {
  console.log('主题已更新:', sw.colorScheme);
});

// 发送数据给 Bot
sw.MainButton.setText('提交');
sw.MainButton.onClick(() => {
  sw.sendData(JSON.stringify({ action: 'submit' }));
});
sw.MainButton.show();