如何在 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 笔记中获取文本的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Evernote iOS SDK 中将笔记转换为 HTML 文件

如何在Linux的命令行中使用Evernote

如何在ios中从手机中获取所有图像

如何在比 iOS 6.0 更早的 iOS 版本中从 UITextRange 获取矩形

如何在 iOS 中从 .plist 添加和获取值

如何在 iOS 应用程序中从蓝牙 LE 设备获取通知