新的evernontesdk地址點這里
evernontesdk涉及到的開發討論比較少,因為最近需要,用了該sdk,主要查看方式主要看源碼。
印象筆記幾個關鍵類:
1、ENSession:主要以單例[ENSession sharedSession]出現,暴露常用的api接口。
2、ENNotebook:筆記本類,主要做的事是筆記本name等常用參數。
3、ENNote:筆記類,涉及單條筆記的參數。
4、EDAMNote:其實也是筆記類,不過是ENNote復雜版,可以用note?= [note?EDAMNote]組裝出來。
5、ENNoteContent:筆記的具體內容,支持html標簽格式。
6、ENNoteRef:單條筆記的信息類,它包含的參數主要是guid,唯一性,可以用這個類來跟印象筆記服務端來做一些對單條筆記操作的事情,比如下載某條筆記。
常用api:
注冊
1、+ (void)setSharedSessionConsumerKey:(NSString*)key
?? ? ? ? ? ? ? ? ? ? consumerSecret:(NSString*)secret
?? ? ? ? ? ? ? ? ? ? ? optionalHost:(nullableNSString*)host,這個接口是用來注冊印象筆記的,需要注冊開發者的秘鑰和秘密并申請激活。例如[ENSession setSharedSessionConsumerKey:kEvernoteConsumerKey
? ? ? ? ? ? ? ? ? ? ? ? ? ? consumerSecret:kEvernoteConsumerSecret
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? optionalHost:nil],這個host支持ENSessionBootstrapServerBaseURLStringCN(大陸),ENSessionBootstrapServerBaseURLStringUS(美國,也就是evernote),憑自己需求填充,如果設置為nil,可以除了支持web授權,如果安裝了印象筆記app,還能支持跨app授權。如果要支持app授權,需要在info.plist文件里設置好schema,并在- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation和- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options做好相應的[[ENSession sharedSession] handleOpenURL:url]調用處理。
授權
[ENSession sharedSession].isAuthenticated? 檢驗是否已經授權
2、- (void)authenticateWithViewController:(UIViewController*)viewController
? ? ? ? ? ? ? ? ? ? preferRegistration:(BOOL)preferRegistration
? ? ? ? ? ? ? ? ? ? ? ? ? ? completion:(ENSessionAuthenticateCompletionHandler)completion,進行授權。
3、- (void)listNotebooksWithCompletion:(ENSessionListNotebooksCompletionHandler)completion,獲取筆記本列表。
4、- (void)createNotebook:(EDAMNotebook*)notebook
? ? ? ? ? ? completion:(void(^)(EDAMNotebook*_Nullablenotebook,NSError*_Nullableerror))completion,創建筆記本,自定義你的筆記本名稱。
5、- (void)findNotesWithSearch:(nullableENNoteSearch*)noteSearch
?? ? ? ? ? ? ? ? inNotebook:(nullableENNotebook*)notebook
? ? ? ? ? ? ? ? ? ? orScope:(ENSessionSearchScope)scope
? ? ? ? ? ? ? ? ? sortOrder:(ENSessionSortOrder)sortOrder
?? ? ? ? ? ? ? ? maxResults:(NSUInteger)maxResults
?? ? ? ? ? ? ? ? completion:(ENSessionFindNotesCompletionHandler)completion,通過關鍵詞查詢已經存在的筆記,返回的ENNoteRef可以用來做下載等相關操作
6、- (void)downloadNote:(ENNoteRef*)noteRef
? ? ? ? ? ? progress:(nullable ENSessionProgressHandler)progress
? ? ? ? ? completion:(ENSessionDownloadNoteCompletionHandler)completionNS_SWIFT_NAME(download(_:progress:completion:)),下載某條筆記的內容和信息。
7、- (void)downloadThumbnailForNote:(ENNoteRef*)noteRef
? ? ? ? ? ? ? ? ? ? maxDimension:(NSUInteger)maxDimension
? ? ? ? ? ? ? ? ? ? ? completion:(ENSessionDownloadNoteThumbnailCompletionHandler)completion,下載某條筆記,返回是一個image。
8、- (BOOL)viewNoteInEvernote:(ENNoteRef*)noteRefNS_SWIFT_NAME(viewNoteInEvernote(_:)),打開印象筆記直接查看某條筆記