ViewerUI
概述
ViewerUI 提供了一系列用于创建和管理用户界面组件的方法。这些方法可以被 PDFViewCtrl 和 UIExtension 调用,用于实现自定义 UI 元素,如:
- 右键菜单
- 警告弹框
- 加载遮罩层 等界面功能。
提示: 完整的 ViewerUI
接口定义请参考 API Reference。
内置实现
SDK 提供了两种内置的 ViewerUI 实现:
- PDFViewCtrl 的 TinyViewerUI
- UIExtension 的 XViewerUI
核心方法
createContextMenu
创建并注册上下文菜单组件。
typescript
function createContextMenu(
key: any, // 菜单实例所有者
anchor: HTMLElement,// 响应右键事件的元素
config: {
selector: string, // 触发菜单的CSS选择器
items: Array<{ // 菜单项配置
nameI18nKey: string, // 菜单项的国际化文本键
// ... 其他菜单项配置
}>
}
): IContextMenu | undefined
提示:返回 undefined
表示不显示指定目标的右键菜单。完整配置项请参考 JQuery contextmenu plugin。
对话框相关方法
typescript
// 警告对话框
function alert(message: string): Promise<void>
// 确认对话框
function confirm(message: string): Promise<void>
// 文本输入对话框
function prompt(
defaultValue: string,
message: string,
title: string
): Promise<string>
// 密码输入对话框
function promptPassword(
defaultValue: string,
message: string,
title: string
): Promise<string>
其他工具方法
typescript
// 显示加载遮罩层
function loading(coverOn: HTMLElement): Function
// 创建文本选择工具提示
function createTextSelectionTooltip(
pageRender: PDFPageRender
): IFloatingTooltip
自定义实现
基于 UIExtension 自定义
javascript
class CustomViewerUI extends UIExtension.XViewerUI {
alert(message) {
// 自定义 alert 实现
console.log('Custom alert:', message);
return Promise.resolve();
}
}
new PDFUI({
viewerOptions: {
viewerUI: new CustomViewerUI()
}
})
基于 PDFViewCtrl 自定义
javascript
class CustomViewerUI extends PDFViewCtrl.viewerui.TinyViewerUI {
alert(message) {
// 自定义 alert 实现
console.log('Custom alert:', message);
return Promise.resolve();
}
}
new PDFViewer({
viewerUI: new CustomViewerUI()
})