Skip to content

MNUtil

MNUtil是提供核心工具函数的对象,包含插件开发常用的上下文读取、学习集查询、文件操作、URL处理、HUD提示与异步交互等能力。

成员类型说明
onAlertboolean弹窗流程状态位,用于判断是否处于弹窗中。
themeColor{Gray:UIColor,Default:UIColor,Dark:UIColor,Green:UIColor,Sepia:UIColor}内置主题色映射表,按主题名取UIColor。
imageTypeCacheRecord<string,string>图片类型缓存,减少重复识别。
popUpNoteInfo{noteId:string}|undefined弹出卡片上下文,常用字段是noteId。
popUpSelectionInfo{docController:DocumentController}|undefined弹出选区上下文,包含docController。
initializedboolean初始化状态位。
dataFolderstring插件数据目录路径。
MNImagePatternRegExp图片标记匹配规则。
defaultNoteColorsstring[]默认卡片颜色列表。
focusHistoryArray<{ type: string; time: number; noteId?: string; text?: string; imageData?: NSData; notebookId?: string; docMd5?: string; pageIndex?: number }>最近聚焦记录列表。
errorLog`Array<{ source?: string; time: string; error: string{ message: string; detail?: string }; info?: object
version{ version: 'marginnote4'|'marginnote3'; versionNumber: number; type: 'iPadOS'|'iPhoneOS'|'macOS' }|undefined当前MarginNote版本信息。
appApplicationApplication单例。
dbDatabase数据库访问入口。
currentWindowUIWindow当前活动窗口。
windowWidthnumber当前窗口宽度。
windowHeightnumber当前窗口高度。
studyControllerStudyController当前学习控制器。
studyViewUIView当前学习视图。
studyWidthnumber学习区域宽度。
studyRightnumber学习区域右边界。
studyHeightnumber学习区域高度。
isLeftSidebarOpenboolean左侧栏是否打开。
leftSidebarWidthnumber左侧栏宽度。
isFixedRightSidebarOpenboolean固定右侧栏是否打开。
fixedRightSidebarWidthnumber固定右侧栏宽度。
fixedRightSidebarUIView|undefined固定右侧栏视图。
isFloatRightSidebarOpenboolean浮动右侧栏是否打开。
floatRightSidebarUIView|undefined浮动右侧栏视图。
floatRightSidebarPosition'left'|'right'|undefined浮动右侧栏位置。
floatRightSidebarWidthnumber浮动右侧栏宽度。
isVerticalboolean当前是否竖向分栏。
isHorizontalboolean当前是否横向分栏。
orientation'vertical'|'horizontal'当前布局方向。
extensionPanelController{ view: UIView }|undefined扩展面板控制器。
extensionPanelViewUIView|undefined扩展面板视图。
extensionPanelOnboolean扩展面板是否开启。
mainPathstring插件主目录路径。
studyModenumber当前学习模式。
readerControllerReaderController当前阅读控制器。
notebookControllerNotebookController当前学习集控制器。
docControllersDocumentController[]当前文档控制器列表。
currentDocControllerDocumentController当前文档控制器。
mindmapViewMindMapView当前脑图视图。
selectionTextstring|undefined当前选中文本。
isSelectionTextboolean当前是否选中文本。
activeTextViewUITextView|undefined当前活跃文本视图。
selectionRefreshTimenumber选区缓存刷新时间。
_currentSelection{onSelection:boolean,image?:NSData,text?:string,isText?:boolean,docMd5?:string,pageIndex?:number,source?:string,docController?:DocumentController}内部选区缓存。
currentSelection{onSelection:boolean,image?:NSData,text?:string,isText?:boolean,docMd5?:string,pageIndex?:number,source?:string}统一选区对象,含文本或图片信息。
currentNotebookIdstring当前学习集id。
currentNotebookMbTopic|undefined当前学习集对象。
currentNotebookFlagsnumber当前学习集标记。
currentNotebookType'Hiden'|'Doc'|'MindMap'|'FlashCard'|'Unknown'当前学习集类型。
currentNotebookControllerNotebookController当前学习集控制器对象。
currentNotebookExcerptColorstring[]当前学习集摘录颜色。
currentDocMbBook当前文档对象。
currentDocmd5string|undefined当前文档md5旧命名。
currentDocMd5string|undefined当前文档md5。
isZHboolean当前语言是否中文。
currentTheme'Default'|'Dark'|'Light'|'Gray'|'Green'|'Sepia'当前主题名。
currentThemeColorUIColor当前主题颜色。
clipboardTextstring剪贴板文本。
clipboardImageUIImage|undefined剪贴板图片对象。
clipboardImageDataNSData|undefined剪贴板图片数据。
dbFolderstring数据库目录路径。
cacheFolderstring缓存目录路径。
documentFolderstring文档目录路径。
tempFolderstring临时目录路径。
splitLinenumber|undefined分隔线文本。
_appVersion{ version: 'marginnote4'|'marginnote3'; versionNumber: number; type: 'iPadOS'|'iPhoneOS'|'macOS' }|undefined内部缓存的版本号。
cancelStringstring取消按钮文案。
confirmStringstring确认按钮文案。
static init(mainPath: string): void

初始化MNUtil运行环境并记录主路径。

参数名类型必填说明
mainPathstring插件主目录路径。
  • 类型:void
  • 语义:无返回值。
static checkDataDir(): void

检查并准备数据目录。

无。

  • 类型:void
  • 语义:无返回值。
static addHistory(type: string, detail: { noteId?: string; text?: string; imageData?: NSData; notebookId?: string; docMd5?: string; pageIndex?: number }): void

写入一次聚焦历史记录。

参数名类型必填说明
typestring历史记录类型。
detail{ noteId?: string; text?: string; imageData?: NSData; notebookId?: string; docMd5?: string; pageIndex?: number }历史记录详情。
  • 类型:void
  • 语义:无返回值。
static addErrorLog(error: string|{ message: string; detail?: string }, source: string, info?: object|string): void

写入一条错误日志。

参数名类型必填说明
errorstring|{ message: string; detail?: string }错误信息或错误对象。
sourcestring错误来源。
infoobject|string附加信息。
  • 类型:void
  • 语义:无返回值。
static customBtoa(str: string): string

把字符串做Base64编码。

参数名类型必填说明
strstring要编码的字符串。
  • 类型:string
  • 语义:返回Base64编码后的字符串。
static utf8_to_b64(str: string): string

UTF-8字符串转Base64。

参数名类型必填说明
strstring要编码的UTF-8字符串。
  • 类型:string
  • 语义:返回Base64编码后的字符串。
static customAtob(input: string): string

把Base64解码成字符串。

参数名类型必填说明
inputstring要解码的Base64字符串。
  • 类型:string
  • 语义:返回解码后的字符串。
static b64_to_utf8(str: string): string

Base64转UTF-8字符串。

参数名类型必填说明
strstring要解码的Base64字符串。
  • 类型:string
  • 语义:返回解码后的UTF-8字符串。
static btoa(str: string): string

字符串转Base64。

参数名类型必填说明
strstring要编码的字符串。
  • 类型:string
  • 语义:返回Base64编码后的字符串。
static compressAndEncode(jsonObj: object, type?: 'pako'|'lz-string'): string|undefined

压缩JSON并输出可传输字符串。

参数名类型必填说明
jsonObjobject要压缩的JSON对象。
type`‘pako''lz-string’`
  • 类型:string|undefined
  • 语义:返回压缩后的字符串,失败时返回undefined。
static decodeAndDecompress(base64: string, type?: 'pako'|'lz-string'): string|undefined

还原压缩字符串。

参数名类型必填说明
base64string要解压的Base64字符串。
type`‘pako''lz-string’`
  • 类型:string|undefined
  • 语义:返回解压后的字符串,失败时返回undefined。
static atob(str: string): string

Base64转字符串。

参数名类型必填说明
strstring要解码的Base64字符串。
  • 类型:string
  • 语义:返回解码后的字符串。
static generateURLScheme(scheme: string, host?: string, path?: string|string[], query?: Record<string,string|number|boolean|object>, fragment?: string): string

按组件拼装URL。

参数名类型必填说明
schemestringURL协议。
hoststringURL主机。
path`stringstring[]`
query`Record<string,stringnumberboolean
fragmentstringURL片段。
  • 类型:string
  • 语义:返回拼装后的目标URL字符串。
static parseMNUIStatusURL(encodedURL: string): object|string|null|undefined

解析MNUI状态URL。

参数名类型必填说明
encodedURLstring要解析的MNUI状态URL。
  • 类型:object|string|null|undefined
  • 语义:返回解析后的状态对象,失败时返回null或undefined。
static generateMNUIStatusURL(jsonObj: object): string|null

把状态对象转成MNUI状态URL。

参数名类型必填说明
jsonObjobject要转换的状态对象。
  • 类型:string|null
  • 语义:返回生成的MNUI状态URL,失败时返回null。
static setUIStatusByConfig(jsonObj: object): void|null

按配置切换界面状态。

参数名类型必填说明
jsonObjobject界面状态配置对象。
  • 类型:void|null
  • 语义:无返回值,失败时返回null。
static setMindmapZoonScale(scale: number): void

设置脑图缩放比例。

参数名类型必填说明
scalenumber缩放比例。
  • 类型:void
  • 语义:无返回值。
static setSideBar(open: boolean): void

打开或关闭侧栏。

参数名类型必填说明
openboolean是否打开侧栏。
  • 类型:void
  • 语义:无返回值。
static searchInSideBar(searchText: string, type?: 'name'|'text'): void

在侧栏按标题或文本搜索。

参数名类型必填说明
searchTextstring搜索文本。
type`‘name''text’`
  • 类型:void
  • 语义:无返回值。
static _getFloatSearchWebview(): UIWebView|undefined

获取浮动搜索WebView。

无。

  • 类型:UIWebView|undefined
  • 语义:返回浮动搜索WebView实例,不存在时返回undefined。
static _getFixedSearchWebview(): UIWebView|undefined

获取固定搜索WebView。

无。

  • 类型:UIWebView|undefined
  • 语义:返回固定搜索WebView实例,不存在时返回undefined。
static isSearchWebviewShown(): boolean

判断搜索WebView是否可见。

无。

  • 类型:boolean
  • 语义:返回搜索WebView是否可见。
static getSearchWebviewURL(): string|undefined

读取搜索WebView当前URL。

无。

  • 类型:string|undefined
  • 语义:返回搜索WebView当前URL,不存在时返回undefined。
static showResearchView(): void

显示研究视图。

无。

  • 类型:void
  • 语义:无返回值。
static openURLInResearch(url: string, needEncode?: boolean): void

在研究视图打开URL。

参数名类型必填说明
urlstring要打开的URL。
needEncodeboolean是否需要编码,默认为false。
  • 类型:void
  • 语义:无返回值。
static openNoteEditor(noteId: string): void

打开指定卡片编辑器。

参数名类型必填说明
noteIdstring卡片ID。
  • 类型:void
  • 语义:无返回值。
static selectNotesInMindmap(noteIds: string[]|string): void

在脑图中选中目标卡片。

参数名类型必填说明
noteIds`string[]string`
  • 类型:void
  • 语义:无返回值。
static setTheme(themeName: string): void

切换主题。

参数名类型必填说明
themeNamestring主题名称。
  • 类型:void
  • 语义:无返回值。
static getToday(): number

获取当天日期数字。

无。

  • 类型:number
  • 语义:返回当天日期数字。
static _isTagComment_(comment: NoteComment): boolean

判断评论是否是标签评论。

参数名类型必填说明
commentNoteComment评论对象。
  • 类型:boolean
  • 语义:返回评论是否是标签评论。
static getCurrentSelection(): {onSelection:boolean,image?:NSData,text?:string,isText?:boolean,docMd5?:string,pageIndex?:number,source?:string,docController?:DocumentController}

读取当前选区。

无。

  • 类型:{onSelection:boolean,image?:NSData,text?:string,isText?:boolean,docMd5?:string,pageIndex?:number,source?:string,docController?:DocumentController}
  • 语义:返回当前选区对象。
static rgbaToHex(rgba: { r: number; g: number; b: number; a: number }, includeAlpha?: boolean, toUpperCase?: boolean): string

RGBA转十六进制颜色。

参数名类型必填说明
rgba{ r: number; g: number; b: number; a: number }RGBA颜色对象。
includeAlphaboolean是否包含透明度,默认false
toUpperCaseboolean是否大写,默认false
  • 类型:string
  • 语义:返回十六进制颜色值。
static rgbaArrayToHexArray(rgbaArray: Array<{ r: number; g: number; b: number; a: number }>, includeAlpha?: boolean, toUpperCase?: boolean): string[]

RGBA数组批量转十六进制颜色。

参数名类型必填说明
rgbaArrayArray<{ r: number; g: number; b: number; a: number }>RGBA数组。
includeAlphaboolean是否包含透明度,默认false
toUpperCaseboolean是否大写,默认false
  • 类型:string[]
  • 语义:返回十六进制颜色值数组。
static getNotebookExcerptColorById(notebookId: string): string[]

按学习集id获取摘录颜色。

参数名类型必填说明
notebookIdstring学习集ID。
  • 类型:string[]
  • 语义:返回学习集的摘录颜色。
static noteColorByNotebookIdAndColorIndex(notebookId: string, colorIndex: number): string

按学习集和颜色索引取颜色值。

参数名类型必填说明
notebookIdstring学习集ID。
colorIndexnumber颜色索引。
  • 类型:string
  • 语义:返回颜色值。
static appVersion(): { version: 'marginnote4'|'marginnote3'; versionNumber: number; type: 'iPadOS'|'iPhoneOS'|'macOS' }|undefined

获取应用版本号。

无。

  • 类型:{ version: 'marginnote4'|'marginnote3'; versionNumber: number; type: 'iPadOS'|'iPhoneOS'|'macOS' }\|undefined
  • 语义:返回应用版本和系统类型信息,异常时返回undefined
static isIOS(): boolean

判断当前系统是否iOS。

无。

  • 类型:boolean
  • 语义:返回当前系统是否iOS。
static isMacOS(): boolean

判断当前系统是否macOS。

无。

  • 类型:boolean
  • 语义:返回当前系统是否macOS。
static isIPadOS(): boolean

判断当前系统是否iPadOS。

无。

  • 类型:boolean
  • 语义:返回当前系统是否iPadOS。
static isMN4(): boolean

判断当前是否MarginNote4。

无。

  • 类型:boolean
  • 语义:返回当前是否MarginNote4。
static isMN3(): boolean

判断当前是否MarginNote3。

无。

  • 类型:boolean
  • 语义:返回当前是否MarginNote3。
static getMNUtilVersion(): string

获取MNUtil版本号。

无。

  • 类型:string
  • 语义:返回MNUtil版本号。
static countWords(str: string): number

统计文本词数。

参数名类型必填说明
strstring要统计的文本。
  • 类型:number
  • 语义:返回文本词数。
static removePunctuationOnlyElements(arr: string[]): string[]

移除仅含标点的分词结果。

参数名类型必填说明
arrstring[]分词结果数组。
  • 类型:string[]
  • 语义:返回移除标点后的分词结果数组。
static doSegment(str: string): string[]

对文本做分词。

参数名类型必填说明
strstring要分词的文本。
  • 类型:string[]
  • 语义:返回分词结果数组。
static wordCountBySegmentit(str: string): number

按分词结果统计词数。

参数名类型必填说明
strstring要统计的文本。
  • 类型:number
  • 语义:返回按分词结果统计的词数。
static importNotebook(path: string, merge: boolean): MNNotebook|undefined

导入学习集文件。

参数名类型必填说明
pathstring学习集文件路径。
mergeboolean是否合并。
  • 类型:MNNotebook\|undefined
  • 语义:返回导入的学习集对象,失败时返回undefined。
static subpathsOfDirectory(path: string): string[]

读取目录全部子路径。

参数名类型必填说明
pathstring目录路径。
  • 类型:string[]
  • 语义:返回目录全部子路径数组。
static contentsOfDirectory(path: string): string[]

读取目录直属内容。

参数名类型必填说明
pathstring目录路径。
  • 类型:string[]
  • 语义:返回目录直属内容数组。
static allNotebooks(): MNNotebook[]

获取全部学习集。

无。

  • 类型:MNNotebook[]
  • 语义:返回全部学习集数组。
static allNotebookIds(): string[]

获取全部学习集id。

无。

  • 类型:string[]
  • 语义:返回全部学习集id数组。
static allDocumentNotebooks(option?: { exceptNotebookIds?: string[]; exceptNotebookNames?: string[] }): MNNotebook[]

获取文档学习集列表。

参数名类型必填说明
option{ exceptNotebookIds?: string[]; exceptNotebookNames?: string[] }排除选项。
  • 类型:MNNotebook[]
  • 语义:返回文档学习集列表。
static allReviewGroups(option?: { exceptNotebookIds?: string[]; exceptNotebookNames?: string[] }): MNNotebook[]

获取复习组列表。

参数名类型必填说明
option{ exceptNotebookIds?: string[]; exceptNotebookNames?: string[] }排除选项。
  • 类型:MNNotebook[]
  • 语义:返回复习组列表。
static allStudySets(option?: { exceptNotebookIds?: string[]; exceptNotebookNames?: string[] }): MNNotebook[]

获取学习集列表。

参数名类型必填说明
option{ exceptNotebookIds?: string[]; exceptNotebookNames?: string[] }排除选项。
  • 类型:MNNotebook[]
  • 语义:返回学习集列表。
static notesInStudySet(studySetId?: string|MNNotebook): MbBookNote[]

获取学习集内卡片。

参数名类型必填说明
studySetIdstring|MNNotebook学习集ID或学习集对象。
  • 类型:MbBookNote[]
  • 语义:返回学习集内卡片数组。
static chatNotesInStudySet(studySetId?: string|MNNotebook): MbBookNote[]

获取学习集内可聊天卡片。

参数名类型必填说明
studySetIdstring|MNNotebook学习集ID或学习集对象。
  • 类型:MbBookNote[]
  • 语义:返回学习集内可聊天卡片数组。
static convertDate(date: string|number|Date|null|undefined): Date|null

把输入值转成Date对象。

参数名类型必填说明
datestring|number|Date|null|undefined要转换的日期值。
  • 类型:Date\|null
  • 语义:返回转换后的Date对象,失败时返回null。
static convertNsAttrsToFsStats(nsAttrs: Record<string, object|string|number|Date>): {
dev: number
ino: number
mode: number
nlink: number
uid: number
gid: number
rdev: number
size: number
blksize: number
blocks: number
atimeMs: number
mtimeMs: number
ctimeMs: number
birthtimeMs: number
atime: Date
mtime: Date
ctime: Date
birthtime: Date
_nsFileType?: string
_nsFileOwnerAccountName?: string
_nsFileGroupOwnerAccountName?: string
_nsFileProtectionKey?: string
_nsFileExtendedAttributes?: object
isFile: boolean
isDirectory: boolean
isSymbolicLink: boolean
isFIFO: boolean
isSocket: boolean
isBlockDevice: boolean
isCharacterDevice: boolean
}

把NS文件属性转成常见文件属性结构。

参数名类型必填说明
nsAttrsRecord<string,object|string|number|Date>NS文件属性对象。
  • 类型:{ dev: number; ino: number; mode: number; nlink: number; uid: number; gid: number; rdev: number; size: number; blksize: number; blocks: number; atimeMs: number; mtimeMs: number; ctimeMs: number; birthtimeMs: number; atime: Date; mtime: Date; ctime: Date; birthtime: Date; _nsFileType?: string; _nsFileOwnerAccountName?: string; _nsFileGroupOwnerAccountName?: string; _nsFileProtectionKey?: string; _nsFileExtendedAttributes?: object; isFile: boolean; isDirectory: boolean; isSymbolicLink: boolean; isFIFO: boolean; isSocket: boolean; isBlockDevice: boolean; isCharacterDevice: boolean }
  • 语义:返回转换后的文件属性对象。
static getFileAttributes(path: string): {
dev: number
ino: number
mode: number
nlink: number
uid: number
gid: number
rdev: number
size: number
blksize: number
blocks: number
atimeMs: number
mtimeMs: number
ctimeMs: number
birthtimeMs: number
atime: Date
mtime: Date
ctime: Date
birthtime: Date
isFile: boolean
isDirectory: boolean
isSymbolicLink: boolean
isFIFO: boolean
isSocket: boolean
isBlockDevice: boolean
isCharacterDevice: boolean
path: string
}

读取文件属性。

参数名类型必填说明
pathstring文件路径。
  • 类型:{ dev: number; ino: number; mode: number; nlink: number; uid: number; gid: number; rdev: number; size: number; blksize: number; blocks: number; atimeMs: number; mtimeMs: number; ctimeMs: number; birthtimeMs: number; atime: Date; mtime: Date; ctime: Date; birthtime: Date; isFile: boolean; isDirectory: boolean; isSymbolicLink: boolean; isFIFO: boolean; isSocket: boolean; isBlockDevice: boolean; isCharacterDevice: boolean; path: string }
  • 语义:返回文件属性对象。
static strCode(str: string): number

计算字符串编码值。

参数名类型必填说明
strstring要计算的字符串。
  • 类型:number
  • 语义:返回字符串编码值。
static textMatchPhrase(text: string, query: string): boolean

判断文本是否命中查询短语。

参数名类型必填说明
textstring要匹配的文本。
querystring查询短语。
  • 类型:boolean
  • 语义:返回文本是否命中查询短语。
static allDocuments(): MbBook[]

获取全部文档。

无。

  • 类型:MbBook[]
  • 语义:返回全部文档数组。
static allDocumentIds(): string[]

获取全部文档id。

无。

  • 类型:string[]
  • 语义:返回全部文档id数组。
static getNoteFileById(noteId: string): { fileExists: false } | { name: string; path: string; md5: string; fileExists: true; pageCount: number }

按卡片id获取关联文件信息。

参数名类型必填说明
noteIdstring卡片ID。
  • 类型:{ fileExists: false } | { name: string; path: string; md5: string; fileExists: true; pageCount: number }
  • 语义:返回卡片关联文件信息。
static isNSNull(obj: object): boolean

判断对象是否为NSNull。

参数名类型必填说明
objobject要判断的对象。
  • 类型:boolean
  • 语义:返回对象是否为NSNull。
static createFolder(path: string): void

创建目录。

参数名类型必填说明
pathstring目录路径。
  • 类型:void
  • 语义:无返回值。
static createFolderDev(path: string): void

在开发场景创建目录。

参数名类型必填说明
pathstring目录路径。
  • 类型:void
  • 语义:无返回值。
static writeDataToFile(data: NSData, path: string): boolean

把数据写入文件。

参数名类型必填说明
dataNSData要写入的数据。
pathstring文件路径。
  • 类型:boolean
  • 语义:写入成功返回true,失败返回false
static getFileFold(path: string): string

获取文件所在目录。

参数名类型必填说明
pathstring文件路径。
  • 类型:string
  • 语义:返回文件所在目录。
static getFileFolder(path: string): string

获取文件所在目录。

参数名类型必填说明
pathstring文件路径。
  • 类型:string
  • 语义:返回文件所在目录。
static copyFile(sourcePath: string, targetPath: string): void

复制文件。

参数名类型必填说明
sourcePathstring源文件路径。
targetPathstring目标文件路径。
  • 类型:void
  • 语义:无返回值。
static moveFile(sourcePath: string, targetPath: string): void

移动文件。

参数名类型必填说明
sourcePathstring源文件路径。
targetPathstring目标文件路径。
  • 类型:void
  • 语义:无返回值。
static moveFileToCacheFolder(path: string): void

把文件移动到缓存目录。

参数名类型必填说明
pathstring文件路径。
  • 类型:void
  • 语义:无返回值。
static moveFolderToCacheFolder(path: string): void

把目录移动到缓存目录。

参数名类型必填说明
pathstring目录路径。
  • 类型:void
  • 语义:无返回值。
static moveToCacheFolder(path: string): void

把文件或目录移动到缓存目录。

参数名类型必填说明
pathstring文件或目录路径。
  • 类型:void
  • 语义:无返回值。
static getRandomElement(arr: any[]): any

从集合随机取一个元素。

参数名类型必填说明
arrany[]集合对象。
  • 类型:any
  • 语义:返回随机选取的元素,空数组时返回空字符串。
static showHUD(message: string, duration?: number, view?: UIView): void

显示HUD提示。

参数名类型必填说明
messagestring提示消息。
durationnumber显示时长,默认为2秒。
viewUIView显示视图,默认为当前窗口。
  • 类型:void
  • 语义:无返回值。
static waitHUD(message: string, view?: UIView): void

显示等待HUD。

参数名类型必填说明
messagestring提示消息。
viewUIView显示视图,默认为当前窗口。
  • 类型:void
  • 语义:无返回值。
static findToc(md5: string, excludeNotebookId?: string): MNNote[]|undefined

查找文档目录卡片。

参数名类型必填说明
md5string文档MD5。
excludeNotebookIdstring排除的笔记本ID。
  • 类型:MNNote[]\|undefined
  • 语义:找到目录卡片时返回数组,否则返回undefined
static getDocTocNotes(md5?: string, notebookId?: string): MNNote[]|undefined

获取文档目录卡片列表。

参数名类型必填说明
md5string文档MD5,默认当前文档。
notebookIdstring笔记本ID,默认当前学习集。
  • 类型:MNNote[]\|undefined
  • 语义:返回目录卡片列表,未找到时返回undefined
static fileTypeFromBase64URL(content: string): string|undefined

从DataURL判断文件类型。

参数名类型必填说明
contentstringDataURL内容。
  • 类型:string\|undefined
  • 语义:返回文件类型。
static getFileTypeFromhexHeader(hexHeader: string): string

从十六进制头判断文件类型。

参数名类型必填说明
hexHeaderstring十六进制头信息。
  • 类型:string
  • 语义:返回文件类型。
static hexHeaderFromData(data: NSData): string|undefined

提取数据头部十六进制。

参数名类型必填说明
dataNSData数据对象。
  • 类型:string\|undefined
  • 语义:返回十六进制头部信息。
static getFileTypeFromBase64(base64: string): string

从Base64字符串判断文件类型。

参数名类型必填说明
base64stringBase64字符串。
  • 类型:string
  • 语义:返回文件类型。
static getFileType(data: NSData|string): string

从二进制数据判断文件类型。

参数名类型必填说明
dataNSData|string二进制数据或Base64字符串。
  • 类型:string
  • 语义:返回文件类型。
static copyObject(object: object|NSData|UIImage): void

复制对象。

参数名类型必填说明
objectobject|NSData|UIImage要复制的对象。
  • 类型:void
  • 语义:无返回值。
static copy(object: string|object|NSData|UIImage|number|boolean|undefined): void

复制文本或对象到剪贴板。

参数名类型必填说明
objectstring|object|NSData|UIImage|number|boolean|undefined要复制的文本或对象。
  • 类型:void
  • 语义:无返回值。
static copyJSON(object: object): void

复制JSON字符串到剪贴板。

参数名类型必填说明
objectobject要复制的对象。
  • 类型:void
  • 语义:无返回值。
static copyImage(imageData: NSData): void

复制图片到剪贴板。

参数名类型必填说明
imageDataNSData图片数据。
  • 类型:void
  • 语义:无返回值。
static openMarginNoteURL(url: string): void

打开MarginNote内部URL。

参数名类型必填说明
urlstringMarginNote内部URL。
  • 类型:void
  • 语义:无返回值。
static openURL(url: string|NSURL, mode?: 'auto'|'external'|'mnbrowser'): void

按模式打开URL。

参数名类型必填说明
urlstring|NSURL要打开的URL。
mode'auto'|'external'|'mnbrowser'打开模式,默认为auto。
  • 类型:void
  • 语义:无返回值。
static canOpenURL(url: string): boolean

判断URL是否可打开。

参数名类型必填说明
urlstring要检查的URL。
  • 类型:boolean
  • 语义:返回URL是否可打开。
static parseTagsToTree(tags: string[]): Array<{ name: string; path: string; children: Array<{ name: string; path: string; children: object[]; isLeaf?: boolean }>; isLeaf?: boolean }>

把标签数组转成树结构。

参数名类型必填说明
tagsstring[]标签数组。
  • 类型:Array<{ name: string; path: string; children: Array<{ name: string; path: string; children: object[]; isLeaf?: boolean }>; isLeaf?: boolean }>
  • 语义:返回标签树结构。
static openWith(config: { url?: string; mode?: 'openURL'|'search'; textToSearch?: string; noteId?: string; engine?: string }, addon?: 'external'|'mnbrowser'): void

调用指定插件执行openWith。

参数名类型必填说明
config{ url?: string; mode?: 'openURL'|'search'; textToSearch?: string; noteId?: string; engine?: string }配置对象。
addon'external'|'mnbrowser'插件名称,默认external
  • 类型:void
  • 语义:无返回值。
static compressImage(imageData: string|NSData|UIImage, quality?: number): NSData|undefined

压缩图片数据。

参数名类型必填说明
imageDatastring|NSData|UIImage图片数据。
qualitynumber压缩质量,0-1之间,默认0.1
  • 类型:NSData\|undefined
  • 语义:压缩成功返回图片数据,失败返回undefined
static parseURL(urlString: string|NSURL|NSURLRequest): {url:string,scheme:string,host?:string,query?:string,params:Record<string,string|boolean|object>,pathComponents?:string[],isBlank:boolean,fragment?:string,port?:number}

解析URL并返回结构化信息。

参数名类型必填说明
urlStringstring|NSURL|NSURLRequest要解析的URL。
  • 类型:{url:string,scheme:string,host?:string,query?:string,params:Record<string,string\|boolean\|object>,pathComponents?:string[],isBlank:boolean,fragment?:string,port?:number}
  • 语义:返回解析后的URL结构信息。
static isNoteInReview(noteId: string): boolean

判断卡片是否在复习状态。

参数名类型必填说明
noteIdstring卡片ID。
  • 类型:boolean
  • 语义:返回卡片是否在复习状态。
static notebookExists(notebookId: string, checkNotes?: boolean): boolean

判断学习集是否存在。

参数名类型必填说明
notebookIdstring学习集ID。
checkNotesboolean是否检查卡片,默认false
  • 类型:boolean
  • 语义:返回学习集是否存在。
static noteExists(noteId: string|MNNote): boolean

判断卡片是否存在。

参数名类型必填说明
noteIdstring|MNNote卡片ID或MNNote实例。
  • 类型:boolean
  • 语义:返回卡片是否存在。
static getNoteById(noteid: string, alert?: boolean): MbBookNote|undefined

按id获取卡片对象。

参数名类型必填说明
noteidstring卡片ID。
alertboolean是否显示警告,默认为false。
  • 类型:MbBookNote\|undefined
  • 语义:返回卡片对象,不存在时返回undefined。
static getNoteBookById(notebookId: string): MbTopic|undefined

按id获取学习集对象。

参数名类型必填说明
notebookIdstring学习集ID。
  • 类型:MbTopic\|undefined
  • 语义:返回学习集对象,不存在时返回undefined
static getDocById(md5: string): MbBook|undefined

按md5获取文档对象。

参数名类型必填说明
md5string文档MD5。
  • 类型:MbBook\|undefined
  • 语义:返回文档对象,不存在时返回undefined。
static getNoteIdByURL(url: string): string

从卡片URL提取卡片id。

参数名类型必填说明
urlstring卡片URL。
  • 类型:string
  • 语义:返回卡片ID。
static getNoteURLById(noteId: string): string

按卡片id生成卡片URL。

参数名类型必填说明
noteIdstring卡片ID。
  • 类型:string
  • 语义:返回卡片URL。
static getNotebookIdByURL(url: string): string

从学习集URL提取学习集id。

参数名类型必填说明
urlstring学习集URL。
  • 类型:string
  • 语义:返回学习集ID。

MNUtil以类静态能力为主,实例成员暂无稳定对外约定。

static async getCurrentUIStatusURL(): Promise<string|undefined>

异步获取当前UI状态URL。

无。

  • 类型:Promise<string|undefined>
  • 语义:返回当前UI状态URL,失败时返回undefined。
static async setUIStatusByConfigAsync(jsonObj: object): Promise<void>

异步按配置设置UI状态。

参数名类型必填说明
jsonObjobject界面状态配置对象。
  • 类型:Promise<void>
  • 语义:无返回值。
static async getSearchWebview(force?: boolean): Promise<UIWebView|undefined>

异步获取搜索WebView。

参数名类型必填说明
forceboolean是否强制创建,默认为false。
  • 类型:Promise<UIWebView|undefined>
  • 语义:返回搜索WebView实例,失败时返回undefined。
static async openURLInResearchAsync(url: string, needEncode?: boolean): Promise<void>

异步在研究视图打开URL。

参数名类型必填说明
urlstring要打开的URL。
needEncodeboolean是否需要编码,默认为false。
  • 类型:Promise<void>
  • 语义:无返回值。
static async convertImageBase64ToPdfBase64(pngBase64: string): Promise<string|undefined>

异步把图片Base64转成PDFBase64。

参数名类型必填说明
pngBase64string图片Base64字符串。
  • 类型:Promise<string|undefined>
  • 语义:返回PDF Base64字符串,失败时返回undefined。
static async convertImageDataToPdfData(imageData: NSData): Promise<NSData|undefined>

异步把图片数据转成PDF数据。

参数名类型必填说明
imageDataNSData图片数据。
  • 类型:Promise<NSData|undefined>
  • 语义:返回PDF数据,失败时返回undefined。
static async runJavaScript(webview: UIWebView, script: string): Promise<object|string|number|boolean|undefined>

在WebView里执行JavaScript并返回结果。

参数名类型必填说明
webviewUIWebViewWebView实例。
scriptstring要执行的JavaScript代码。
  • 类型:Promise<object|string|number|boolean|undefined>
  • 语义:返回JavaScript执行结果。
static async webviewBlur(webView: UIWebView): Promise<void>

触发WebView失焦。

参数名类型必填说明
webViewUIWebViewWebView实例。
  • 类型:Promise<void>
  • 语义:无返回值。
static async stopHUD(delay?: number, view?: UIView): Promise<void>

关闭HUD。

参数名类型必填说明
delaynumber延迟时间,默认为0。
viewUIView显示视图,默认为当前窗口。
  • 类型:Promise<void>
  • 语义:无返回值。
static async alert(mainTitle: string, subTitle?: string): Promise<number>

弹出提示框并返回按钮索引。

参数名类型必填说明
mainTitlestring主标题。
subTitlestring副标题。
  • 类型:Promise<number>
  • 语义:返回按钮索引。
static async confirm(mainTitle: string, subTitle?: string, items?: string[]): Promise<boolean>

弹出确认框并返回布尔结果。

参数名类型必填说明
mainTitlestring主标题。
subTitlestring副标题。
itemsstring[]选项列表。
  • 类型:Promise<boolean>
  • 语义:返回用户是否确认。
static async userSelect(mainTitle: string, subTitle?: string, items: string[]): Promise<number>

弹出选项框并返回选中索引。

参数名类型必填说明
mainTitlestring主标题。
subTitlestring副标题。
itemsstring[]选项列表。
  • 类型:Promise<number>
  • 语义:返回选中的选项索引。
static async openMarginNoteURLAsync(url: string): Promise<void>

异步打开MarginNote内部URL。

参数名类型必填说明
urlstringMarginNote内部URL。
  • 类型:Promise<void>
  • 语义:无返回值。
static async openURLAsync(url: string, mode?: string): Promise<void>

异步打开URL。

参数名类型必填说明
urlstring要打开的URL。
modestring打开模式。
  • 类型:Promise<void>
  • 语义:无返回值。
static async openURLOptionsCompletionHandler(url: string): Promise<boolean>

异步打开URL并返回是否成功。

参数名类型必填说明
urlstring要打开的URL。
  • 类型:Promise<boolean>
  • 语义:返回URL是否打开成功。
static async openNotebook(notebook: string|MNNotebook|MbTopic, needConfirm?: boolean): Promise<boolean>

异步打开学习集。

参数名类型必填说明
notebook`stringMNNotebookMbTopic`
needConfirmboolean是否需要确认,默认为false。
  • 类型:Promise<boolean>
  • 语义:返回学习集是否打开成功。
头文件 API 清单

正在加载…

协议:,来源: