AppBoxo JS SDK 通用软件
Appboxo JS SDK是微型app和本土应用之间的接通桥,它具有丰富的API特性,让你的微型应用感觉像本土. 使用Appboxo JS SDK,主机应用程序可以将用户电子邮件传递给微型app,在微型app中自动注册用户.
使用量
import appboxoSdk from '@appboxo/js-sdk';
// Sends event to client
appboxoSdk.send('AppBoxoWebAppInit');
// Subscribes to event, sended by client
appboxoSdk.subscribe(e => console.log(e));
用于浏览器, 包括文件 dist/index.umd.js 使用情况如下:
<script src="dist/index.umd.js"></script>
<script>
// Sends event to client
appboxoSdk.send('AppBoxoWebAppInit');
</script>
本地客户
本地客户端(Android和iOS)应该使用这个来将数据传递给小型app:
window.dispatchEvent(new window.CustomEvent('AppBoxoWebAppEvent', {
bubbles: false,
cancelable: false,
detail: {
type: 'AppBoxoWebAppGetInitData',
data: {
app_id: 234234,
client_id: 344343,
payload: 'asdlj2323ljaoiw',
token: 'qerljljqwerqwe',
request_id: 1
}
}
}))
重要
如果小型应用程序引发的事件 request_id 内部 data (如上面的例子),而不是意味着 sendPromise 已调用, 并与 request_id 活动 type 应返回以解决这一承诺.
认证
appboxoSdk.login(optionalProps)
向本地客户端发送消息以打开带有默认确认消息的确认模式 。 在确认后,它向平台发送请求并返回已解决的认证信使对微型app的承诺.
参数
optionalProps选项 扩展默认登录行为的道具
示例
try {
const token = await appboxoSdk.login({
confirmModalText: 'This is my custom confirmation message',
postConfirmCallback: (isConfirmed) => { console.log('Confirmation status: ', isConfirmed) }
});
} catch (error) {
// Handling an error
}
appboxoSdk.logout()
向本地客户端发送消息以清除认证符.
API 参考
appboxoSdk.sendPromise(method[, params])
向本地客户端发送消息并返回 Promise 有响应数据的对象
参数
method所需经费 AppBoxo js sdk 方法params选项 信件数据对象
示例
// Sending event to client
appboxoSdk
.sendPromise('AppBoxoWebAppGetInitData')
.then(data => {
// Handling received data
console.log(data.email);
})
.catch(error => {
// Handling an error
});
也可以用必经之道
try {
const data = await appboxoSdk.sendPromise('AppBoxoWebAppGetInitData');
// Handling received data
console.log(data.email);
} catch (error) {
// Handling an error
}
appboxoSdk.send(method[, params])
向本地客户端发送消息
参数
method所需经费 AppBoxo js sdk 方法params选项 信件数据对象
示例
// App initialization
appboxoSdk.send('AppBoxoWebAppInit');
// Opening images
appboxoSdk.send('AppBoxoWebAppShowImages', {
images: [
"https://pp.userapi.com/c639229/v639229113/31b31/KLVUrSZwAM4.jpg",
"https://pp.userapi.com/c639229/v639229113/31b94/mWQwkgDjav0.jpg",
"https://pp.userapi.com/c639229/v639229113/31b3a/Lw2it6bdISc.jpg"
]
}
appboxoSdk.subscribe(fn)
订阅一个函数到静听事件
参数
fn所需经费 要订阅的事件的函数
示例
// Subscribing to receiving events
appboxoSdk.subscribe(event => {
if (!event.detail) {
return;
}
const { type, data } = event.detail;
if (type === 'AppBoxoWebAppOpenCodeReaderResult') {
// Reading result of the Code Reader
console.log(data.code_data);
}
if (type === 'AppBoxoWebAppOpenCodeReaderFailed') {
// Catching the error
console.log(data.error_type, data.error_data);
}
});
// Sending method
appboxoSdk.send('AppBoxoWebAppOpenCodeReader', {});
appboxoSdk.unsubscribe(fn)
取消从事件监听的函数
参数
fn所需经费 事件订阅函数
示例
const fn = event => {
// ...
};
// Subscribing
appboxoSdk.subscribe(fn);
// Unsubscribing
appboxoSdk.unsubscribe(fn);
appboxoSdk.supports(method)
检查当前设备是否有事件可用
参数
method所需经费 AppBoxo js sdk 方法
appboxoSdk.isWebView()
回返 true 如果 AppBoxo js sdk 在移动应用程序中运行,或 false 如果不是的话