如何在 iOS 中从 Evernote 笔记中获取文本

Posted

技术标签:

【中文标题】如何在 iOS 中从 Evernote 笔记中获取文本【英文标题】:How to get Text from a Evernote note in iOS 【发布时间】:2017-06-26 06:01:35 【问题描述】:

我正在尝试在我的 ios 应用程序中仅下载 Evernote 的 笔记的图像和文本(可能是 html 字符串)。我已经成功地从笔记中下载了图像。但是我没有找到任何方法或过程可以帮助我获取写在笔记上的文本。我用过了 ENSDK.framework

-(void)findAllNotes 
     NSLog(@"finding all notes..");
    [self.session findNotesWithSearch:nil
                     inNotebook:nil
                     orScope:ENSessionSearchScopeAll
                     sortOrder:ENSessionSortOrderNormal
                     maxResults:255
                     completion:^(NSArray* findNotesResults,
                                  NSError* findNotesError) 

                                      if (findNotesError) 
                                           [self.session unauthenticate];
                                            NSAssert(NO, @"Could not find notes with error %@", findNotesError);
                                       else 
                                             [self processFindNotesResults:findNotesResults];
                                        
                     ];


- (void)processFindNotesResults:(NSArray*)results 
     NSParameterAssert(results);
     NSLog(@"processing find notes results..");

     for (ENSessionFindNotesResult* result in results) 
           [self.session downloadNote:result.noteRef
                  progress:NULL
                  completion:^(ENNote* note,
                  NSError* downloadNoteError) 
                  NSAssert(!downloadNoteError, @"Could not download note with error %@",
                                  downloadNoteError);

                 [self getDataFromNote:note];

                   ];
      





-(void)getDataFromNote:(ENNote*)note 

    for (ENResource* resource in note.resources) 

        if ([resource.mimeType hasPrefix:@"image"]) 
        UIImage* image = [[UIImage alloc] initWithData:resource.data];
            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

            NSString *docs = [paths objectAtIndex:0];
            NSString* path =  [docs stringByAppendingFormat:@"/image1.jpg"];

            NSData* imageData = [NSData dataWithData:UIImageJPEGRepresentation(image, .8)];
            NSError *writeError = nil;

            if(![imageData writeToFile:path options:NSDataWritingAtomic error:&writeError]) 
                NSLog(@"%@: Error saving image: %@", [self class], [writeError localizedDescription]);
            
        

    

【问题讨论】:

【参考方案1】:

注释的内容在变量notecontent 属性中可供您使用;即它位于 ENNote 对象的 content 属性中。

另外请注意,除了直接访问内容之外,Evernote iOS SDK 还提供includes a special method,这使得在UIWebView 中显示笔记的内容变得容易:

我们让这变得简单——我们没有将其序列化为 HTML 并处理附加的图像资源,而是提供了一种从便笺生成单个 Safari“网络存档”的方法;这是一个绑定的数据类型,UIWebView 本身就知道如何直接加载。

【讨论】:

以上是关于如何在 iOS 中从 Evernote 笔记中获取文本的主要内容,如果未能解决你的问题,请参考以下文章