弹窗
Modal(弹窗)是一个对话框组件,用于在当前页面之上展示重要信息、警告提示或需要确认的操作。Modal 提供了多种类型(确认、警告、错误、成功等),帮助应用实现统一的弹窗交互体验。
快速开始
以下示例展示了弹窗的基本实现方式:
import Client, { shared, Modal, ModalAction } from '@shoplineos/app-bridge';
// 1. 初始化 App Bridge
const app = Client.createApp({
appKey: 'your-app-key',
host: shared.getHost(),
});
// 2. 创建 Modal 实例
const modal = Modal.create(app);
// 3. 打开确认弹窗
modal.open({
type: 'confirm',
title: '确认删除',
content: '确定要删除这个商品吗?此操作无法撤销。',
});
// 4. 订阅确认事件
modal.subscribe(ModalAction.MODAL_SAVE, () => {
console.log('点击了确认');
// 执行删除操作
});
// 5. 订阅取消事件
modal.subscribe(ModalAction.MODAL_CLOSE, () => {
console.log('点击了取消');
});
当调用 open() 方法后,会在页面中弹出对应弹窗。确认弹窗的效果如下:

API 方法
open()
(config: ModalProps): void
打开弹窗。
参数
| 参数 | 类型 | 说明 | 必填 |
|---|---|---|---|
| config | ModalProps | 弹窗配置,详见下方 类型定义 中的参数说明。 | 是 |
使用示例
// 确认弹窗
modal.open({
type: 'confirm',
title: '确认操作',
content: '确定要继续吗?',
});
// 危险操作弹窗
modal.open({
type: 'danger',
title: '危险操作',
content: '此操作将永久删除数据,无法恢复!',
});
// 错误提示弹窗
modal.open({
type: 'error',
title: '操作失败',
content: '保存失败,请稍后重试。',
});
// 成功提示弹窗
modal.open({
type: 'success',
title: '操作成功',
content: '商品已成功保存。',
});
// 警告弹窗
modal.open({
type: 'warn',
title: '警告',
content: '有未保存的更改,确定要离开吗?',
});
// 信息提示弹窗
modal.open({
type: 'info',
title: '提示',
content: '该功能即将上线,敬请期待。',
});
subscribe()
(action: ModalAction, callback: () => void, once?: boolean): () => void
订阅弹窗的动作事件(如确认、取消等)。
参数
| 参数 | 类型 | 说明 | 必填 |
|---|---|---|---|
| action | ModalAction | 订阅的动作类型,详见下方 类型定义 中的动作类型说明。 | 是 |
| callback | () => void | 动作触发时的回调函数。 | 是 |
| once | boolean | 是否在触发一次后自动取消订阅。 • true:表示触发一次后自动取消订阅。• false:表示触发后不会自动取消订阅,需要手动取消订阅。 | 否 |
返回值
返回一个取消订阅函数,调用它可以取消当前订阅。
使用示例
// 订阅确认事件
const unsubscribe = modal.subscribe(ModalAction.MODAL_SAVE, () => {
console.log('确认了操作');
// 执行相应的业务逻辑
});
// 取消订阅
unsubscribe();
// 订阅一次性事件(触发后自动取消订阅)
modal.subscribe(
ModalAction.MODAL_SAVE,
() => {
console.log('这个回调只会执行一次');
},
true,
);
unsubscribe()
(action: ModalAction): void
取消指定动作的所有订阅。
参数
| 参数 | 类型 | 说明 | 必填 |
|---|---|---|---|
| action | ModalAction | 取消订阅的动作类型,详见下方 类型定义 中的动作类型说明。 | 是 |
使用示例
// 取消所有 MODAL_SAVE 动作的订阅
modal.unsubscribe(ModalAction.MODAL_SAVE);