@appboxo/js-sdk

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

JavaScript SDK for AppBoxo mini-app platform

原始使用文档
文档目录12 节
  1. Usage
  2. Native clients
  3. Authentication
  4. appboxoSdk.login(optionalProps)
  5. appboxoSdk.logout()
  6. API Reference
  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 is a connection bridge between miniapp and native app, that has a rich API features that make your miniapp feel like a native. Using Appboxo JS SDK, host app can pass the user email to miniapp, to register the user automatically in the miniapp.

Usage

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));

For use in a browser, include the file dist/index.umd.js and use as follows

<script src="dist/index.umd.js"></script>

<script>
  // Sends event to client
  appboxoSdk.send('AppBoxoWebAppInit');
</script>

Native clients

Native clients (both Android and iOS) should call this to pass data to mini apps:

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
    }
  }
}))

Important

If an event triggered from mini app has request_id inside data (like on the example above), than it means that sendPromise has been called and same event with request_id and event type should be returned to resolve this promise.

Authentication

appboxoSdk.login(optionalProps)

Sends a message to native client to open confirm modal with default confirmation message. Upon confirmation it sends request to platform and returns resolved authentication token promise to miniapp.

Parameters

  • optionalProps optional Props to extend default login behavior

Example

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()

Sends a message to native client to clear authentication tokens.

API Reference

appboxoSdk.sendPromise(method[, params])

Sends a message to native client and returns the Promise object with response data

Parameters

  • method required The AppBoxo js sdk method
  • params optional Message data object

Example

// Sending event to client
appboxoSdk
  .sendPromise('AppBoxoWebAppGetInitData')
  .then(data => {
    // Handling received data
    console.log(data.email);
  })
  .catch(error => {
    // Handling an error
  });

You can also use imperative way

try {
  const data = await appboxoSdk.sendPromise('AppBoxoWebAppGetInitData');

  // Handling received data
  console.log(data.email);
} catch (error) {
  // Handling an error
}

appboxoSdk.send(method[, params])

Sends a message to native client

Parameters

  • method required The AppBoxo js sdk method
  • params optional Message data object

Example

// 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)

Subscribes a function to events listening

Parameters

  • fn required Function to be subscribed to events

Example

// 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)

Unsubscribes a function from events listening

Parameters

  • fn required Event subscribed function

Example

const fn = event => {
  // ...
};

// Subscribing
appboxoSdk.subscribe(fn);

// Unsubscribing
appboxoSdk.unsubscribe(fn);

appboxoSdk.supports(method)

Checks if an event is available on the current device

Parameters

  • method required The AppBoxo js sdk method

appboxoSdk.isWebView()

Returns true if AppBoxo js sdk is running in mobile app, or false if not

版本与发布记录

@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 是什么?

JavaScript SDK for AppBoxo mini-app platform

如何安装 @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 和提交记录判断。