直达内容

Web 容器 JS API

Mixin Messenger 的 WebView 中有几个 Javascript 方法,可以被 bot 的网页使用。 方便开发人员阅读对话信息和更改区域设置等。

getContext()

这将返回当前网页的上下文。

getMixinContext: function () {
let ctx = {};
if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.MixinContext) {
ctx = JSON.parse(prompt('MixinContext.getContext()'))
ctx.platform = ctx.platform || 'iOS'
} else if (window.MixinContext && (typeof window.MixinContext.getContext === 'function')) {
ctx = JSON.parse(window.MixinContext.getContext())
ctx.platform = ctx.platform || 'Android'
}
return ctx
},

The response:

{
"app_version": "0.24.0", // Mixin Messenger version
"immersive": true, // immersive mode on/off
"appearance": "dark", // light or dark theme, according to system settings
"currency": "USD", // currency
"locale": "en-US", // language
"platform": "iOS", // Android | iOS | Desktop
"conversation_id": "" // the conversation ID. it would be empty if the webpage is not open in a conversation
}

reloadTheme()

从 html meta 中读取主题颜色并应用:

reloadTheme: function () {
switch (this.getMixinContext().platform) {
case 'iOS':
window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.reloadTheme && window.webkit.messageHandlers.reloadTheme.postMessage('');
return
case 'Android':
case 'Desktop':
window.MixinContext && (typeof window.MixinContext.reloadTheme === 'function') && window.MixinContext.reloadTheme()
return
}
}

请阅读设计指南 了解更多关于主题的细节。

playlist(audios)

调用播放列表。 audios 是一个字符串数组,其中包含 mp3 文件的 URI 列表。

playlist: function (audios) {
switch (this.getMixinContext().platform) {
case 'iOS':
window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.playlist && window.webkit.messageHandlers.playlist.postMessage(audios);
return
case 'Android':
case 'Desktop':
window.MixinContext && (typeof window.MixinContext.playlist === 'function') && window.MixinContext.playlist(audios)
return
}
}
信息

Mixin Messenger 0.30.0 或以上版本支持此方法。

close()

关闭当前机器人窗口:

close: function () {
switch (this.getMixinContext().platform) {
case 'iOS':
window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.close && window.webkit.messageHandlers.close.postMessage('');
return
case 'Android':
case 'Desktop':
window.MixinContext && (typeof window.MixinContext.close === 'function') && window.MixinContext.close()
return
}
}
信息

Mixin Messenger 0.33.0 或以上版本支持此方法。

第三方 SDK

为了方便使用,第三方团队将这些 Javascript 方法打包到 JsBridge SDK 中。 SDK 提供了统一的访问方式,并给出了所有 Javascript 方法和使用示例的列表。 请访问此处了解更多详情