@appboxo/js-sdk

中文文档
2.2.1发布于 2026/08/27Apache-2.0TypeScriptESM + CJS近 30 天下载 7606

用于 AppBoxo 小型应用平台的 JavaScript SDK

中文使用文档
文档目录12 节
  1. 使用量
  2. 本地客户
  3. 认证
  4. appboxoSdk.login(optionalProps)
  5. appboxoSdk.logout()
  6. API 参考
  7. appboxoSdk.sendPromise(method[, params])
  8. appboxoSdk.send(method[, params])
  9. appboxoSdk.subscribe(fn)
  10. appboxoSdk.unsubscribe(fn)
  11. appboxoSdk.supports(method)
  12. appboxoSdk.isWebView()

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 如果不是的话

版本与发布记录

@appboxo/js-sdk 共发布 62 个版本,首次发布于 2019/11/14;过去 12 个月发布了 3 个版本。

版本发布日期距今
2.2.1latest2026/08/272 个月前
2.2.02026/02/248 个月前
2.1.1-kem.1kem2025/12/0211 个月前
2.1.12025/10/301 年前
2.1.02025/10/291 年前
1.9.02025/04/141.6 年前

关于 @appboxo/js-sdk 的常见问题

@appboxo/js-sdk 是什么?

用于 AppBoxo 小型应用平台的 JavaScript SDK

如何安装 @appboxo/js-sdk?

在项目目录运行 npm install @appboxo/js-sdk,或使用 pnpm add / yarn add / bun add。

@appboxo/js-sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@appboxo/js-sdk 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@appboxo/js-sdk 可以商用吗?

@appboxo/js-sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@appboxo/js-sdk 的下载量有多少?

根据 npm 官方下载统计,@appboxo/js-sdk 在 2026/10/07 – 2026/11/05 这 30 天内被下载 7,606 次,日均约 254 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@appboxo/js-sdk 还在维护吗?

最新版本 2.2.1 发布于 2026/08/27(2 个月前);至今共发布 62 个版本,其中过去 12 个月发布了 3 个;首次发布于 2019/11/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。