只读笔记

理解 contentClass 的属性


概述

一些类似印象笔记食记和印象笔记人脉的应用创建的笔记在其他应用中应当是只读的。

什么是只读笔记?

顾名思义,只读笔记在大多数应用中只能被查看而不能被修改。应用只能修改只读笔记的笔记本和标签。当一个应用需要依赖笔记的 ENML 内容的特定结构时,应用就会创建只读笔记。如果其他应用能够修改笔记内容,那么笔记结构就会被改变,从而笔记在创建它的应用中就无法正确显示。

设置笔记为只读的方法和原因

在创建笔记时,如果笔记包含特殊的结构信息,那么这个笔记应当被设置为只读。特殊的结构信息要求应用在笔记主体中做更改时需要遵循特殊的规则。通过标记 Note.attributes.contentClass 域来把一条笔记设置为只读。当一条笔记设置了 contentClass 时,除非应用显式地支持指定的内容类型,否则应用应当把这条笔记当作是只读的。

这个 contentClass 域指定了笔记主体中包含的内容类型。笔记主体必须仍然是合法的 ENML。这个 contentClass 属性指定了 ENML 内容所遵循的特定结构。

第三方应用可以按照 companyName.appName[.noteType] (例如 microsoft.word.document)格式来设置 contentClass 以创建只读笔记。在你设置 contentClass 并创建只读笔记之前,请确认这是必需的 - 当笔记不能在印象笔记客户端应用中被修改时用户将不能使用一些功能。

搜索特定内容类型的笔记

通过在搜索关键词(NoteFilter.words 域)中包含 contentClass:string,你可以搜索特定内容类型的笔记。可以包含一个尾部的通配符,例如 contentClass:evernote.hello.*。

只读笔记示例

印象笔记·食记印象笔记·人脉所创建的笔记在其他印象笔记客户端中是只读的。食记笔记的 contentClass 是 evernote.food.meal,而人脉使用 evernote.hello.profileevernote.hello.encounter 作为 contentClass。