Ionic 3获取资产文件的内容

时间:2017-06-17 06:36:43

标签: angular typescript ionic-framework ionic3

我正在构建一个应用程序来显示书籍的内容。我在这个应用程序中有3页:

第1页。链接到章节的按钮列表; (ChaptersPage
 第2页。链接到章节页面的按钮列表; (PagesPage
 第3页。页面内容; (PageContentPage

第1页和第2页位于选项卡内,因此当用户选择章节时,他会转到下一个选项卡,然后选择该章的页面,然后获取页面内容。选项卡将如下所示: enter image description here

所有页面和章节都在他自己的文件夹中。我的app文件夹如下所示:

src
|_ app
|_ assets
   |_ icon
   |_ images
   |_ chapters
      |_ 1
         |_page_1.txt
         |_page_2.txt
      |_ 2
         |_page_1.txt
         |_page_2.txt
      |_ 3
         |_page_1.txt
         |_page_2.txt
      |_  ...
|_ pages
|_ services
|_ ...

首先,当用户选择章节时,我需要查看章节文件夹中有多少页面,因此我可以列出正确数量的按钮。我试图使用ionic native File plugin,但我没有成功。使用文件插件文档中的示例我总是得到"目录不存在":

this.file.checkDir(this.file.applicationDirectory, 'assets/chapters/2').then(_ => 
   console.log('Directory exists')
).catch(err => console.log('Directory doesnt exist'));

所以,我的问题是:如何读取章文件夹中有多少文件?之后,如何获取page.txt的内容?

3 个答案:

答案 0 :(得分:6)

readPage() {
    this.http.request('../assets/chapters/1/page_1.txt')
          .map(res => res.text())
          .subscribe(text => {
            this.txtContent= text;
          })
          .catch(error => {
            console.err("Path not found with error:", error);
          });
}

答案 1 :(得分:0)

首先更改此代码块,这将使您进入所需的目录

this.file.checkDir(this.file.applicationDirectory, './chapters/2').then(_ => 
   console.log('Directory exists')
).catch(err => console.log('Directory doesnt exist'));

答案 2 :(得分:0)

  • 尝试以下用于android设备:
this.file.checkDir(this.file.applicationDirectory,'public/assets/chapters/2')
.then(_ => 
   console.log('Directory exists')
).catch(err => console.log('Directory doesnt exist'));