frontend/packages/client-sdk/README_zh.md
🚀 专为 iframe 微前端架构设计的安全、高效通信解决方案
# 使用 npm
npm install @zjy365/sealos-desktop-sdk
# 使用 pnpm
pnpm add @zjy365/sealos-desktop-sdk
# 使用 yarn
yarn add @zjy365/sealos-desktop-sdk
import { createMasterAPP } from '@zjy365/sealos-desktop-sdk/master';
useEffect(() => {
// 配置允许的域名(生产环境建议使用具体域名)
const cleanup = createMasterAPP(['https://app.example.com']);
return cleanup; // 组件卸载时清理
}, []);
import { createSealosApp, sealosApp } from '@zjy365/sealos-desktop-sdk';
useEffect(() => {
// 初始化 SDK
const cleanup = createSealosApp();
return cleanup;
}, []);
// 获取用户信息
const getUserInfo = async () => {
try {
const session = await sealosApp.getSession();
console.log('用户信息:', session.user);
} catch (error) {
console.error('获取用户信息失败:', error);
}
};
// 获取语言设置
const getLanguage = async () => {
const { lng } = await sealosApp.getLanguage();
console.log('当前语言:', lng);
};
// 获取用户会话信息
const session = await sealosApp.getSession();
console.log(session.user.name); // 用户名
console.log(session.user.id); // 用户ID
// 获取当前语言设置
const { lng } = await sealosApp.getLanguage();
// lng: 'zh' | 'en' | 其他语言代码
// 子应用监听主应用事件
const unsubscribe = sealosApp.addAppEventListen('user-update', (userData) => {
console.log('用户信息已更新:', userData);
});
// 子应用向主应用发送事件
await sealosApp.runEvents('app-ready', { appId: 'my-app' });
// 清理事件监听器
unsubscribe();
graph LR
A[子应用 App] -->|postMessage| B[主应用 Desktop]
B -->|postMessage| A
A -->|uuid 标识| B
B -->|相同 uuid 回复| A
# 1. 安装开发工具
npm i -g yalc nodemon
# 2. 启动开发模式
npm run dev
# 3. 链接到本地项目
npm run link-sdk
# 4. 断开链接
npm run unlink-sdk
constants/api.ts 中添加新的 API 名称src/master.ts 中实现对应的处理方法src/app.ts 中添加客户端调用方法// 生产环境推荐配置
const allowedOrigins = ['https://your-app-domain.com', 'https://another-app.com'];
createMasterAPP(allowedOrigins);
| API | 参数 | 返回值 | 说明 |
|---|---|---|---|
getSession() | - | Promise<SessionV1> | 获取用户会话信息 |
getLanguage() | - | Promise<{lng: string}> | 获取语言设置 |
runEvents(name, data) | string, any | Promise<any> | 触发主应用事件 |
addAppEventListen(name, fn) | string, function | function | 监听主应用事件 |
欢迎提交 Issue 和 Pull Request!