@keqi.gress/plugin-bridge
v1.0.0
Published
Gress 插件桥接核心包 - 提供插件与宿主应用通信的标准 API
Downloads
16
Maintainers
Readme
@gress/plugin-bridge
Gress 插件桥接核心包 - 提供插件与宿主应用通信的标准 API
📦 安装
npm install @gress/plugin-bridge
# or
yarn add @gress/plugin-bridge
# or
pnpm add @gress/plugin-bridge🚀 快速开始
在主应用中创建插件桥
import { createPluginBridge, exposePluginBridge } from '@gress/plugin-bridge'
const bridge = createPluginBridge({
app,
router,
pinia,
http: requestClient,
permissions: [
PluginPermission.NETWORK_ACCESS,
PluginPermission.ROUTER_NAVIGATE,
// ... 其他权限
]
})
// 暴露给插件使用
exposePluginBridge(bridge)在插件中使用桥接功能
import { useHostBridge, useIcon } from '@gress/plugin-bridge'
// 获取宿主能力
const { router, message, http, events } = useHostBridge()
// 路由导航
router.push('/some-path')
// 显示消息
message.success('操作成功')
// HTTP 请求
const data = await http.get('/api/data')
// 使用图标
const HomeIcon = useIcon('HomeOutline')📚 API 文档
Composables
useHostBridge()
获取宿主桥接对象,提供对主应用能力的访问。
返回值:
bridge- 完整的桥接对象router- 路由 APIroute- 当前路由message- 消息提示 APIdialog- 对话框 APInotification- 通知 APIloadingBar- 加载条 APIhttp- HTTP 客户端events- 事件总线utils- 工具函数
useIcon(iconName: string)
获取图标组件。
const HomeIcon = useIcon('HomeOutline')useIcons(iconNames: string[])
批量获取图标组件。
const icons = useIcons(['HomeOutline', 'AddOutline', 'SearchOutline'])核心功能
createPluginBridge(options)
创建插件桥实例(主应用使用)。
createPluginContext(pluginId, manifest, bridge)
创建插件上下文(插件系统内部使用)。
createEventEmitter()
创建事件发射器。
🔒 权限系统
插件需要声明所需权限:
export const manifest: PluginManifest = {
id: 'my-plugin',
name: 'My Plugin',
version: '1.0.0',
permissions: [
PluginPermission.NETWORK_ACCESS,
PluginPermission.ROUTER_NAVIGATE,
PluginPermission.DATA_READ
]
}可用权限:
NETWORK_ACCESS- 网络访问ROUTER_NAVIGATE- 路由导航ROUTER_REGISTER- 注册路由COMPONENT_REGISTER- 注册组件DATA_READ- 读取数据DATA_WRITE- 写入数据SYSTEM_NOTIFICATION- 系统通知
📄 License
MIT
