文件
mynode/packages/pdf-viewer/messageService.ts
chen 301194963b
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

36 行
865 B
TypeScript

export default class MessageService {
private viewerType: string;
public constructor(type: string) {
this.viewerType = type;
}
private sendMessage = (name: string, data?: Record<string, unknown>) => {
if (this.viewerType === 'full') {
const message = {
name,
...data,
};
window.postMessage(message, '*');
} else if (this.viewerType === 'mini') {
const message = {
name,
data,
target: 'webview',
};
window.parent.postMessage(message, '*');
}
};
public textSelected = (text: string) => {
this.sendMessage('textSelected', { text });
};
public close = () => {
this.sendMessage('close');
};
public openExternalViewer = () => {
this.sendMessage('externalViewer');
};
public openFullScreenViewer = (resourceId: string, pageNo: number) => {
this.sendMessage('openPdfViewer', { resourceId, pageNo });
};
}