【问题标题】:getting local json data to android with ionic 3使用 ionic 3 将本地 json 数据获取到 android
【发布时间】:2018-09-14 00:28:56
【问题描述】:

我已经用谷歌搜索了这个问题并找到了几个解决方案。但其中大部分是针对离子2和角度2的。我不知道我正在使用的角度5和离子3是否有任何变化。

我有一个本地 json 文件,我正在从中获取我的数据。在浏览器中它工作得很好,但在我的安卓平板电脑上我的数据没有显示。

我找到的解决方案主要是关于路径问题。他们中的大多数人说要像这样改变android的路径:

service.ts

  loadData() {   
  var url = 'assets/data/skills.json';
  if (this.platform.is('cordova') && this.platform.is('android')) {
          url = "/android_asset/www/" + url;
      }
    return new Promise(resolve => {
      this.http.get(url)
        .subscribe((data) => {
          resolve(data);
        }, err => {
          console.log(err);
        });
    });
  }

service.ts的路径:

项目/src/providers/service/service.ts

我的json文件的路径:

项目/src/assets/data/skills.json

查看我的研究,我假设 android 部署的 json 文件的路径必须是这样的:

Project/android_asset/www/assets/data/skills.json

但文件夹“android_asset”甚至不存在于我的项目中,但大多数研究表明它应该存在。或者这可能只是在较旧的角度/离子版本中?

我该如何解决这个问题?

【问题讨论】:

  • @SurajRao 这基本上是我已经拥有的代码,但这仍然行不通
  • 我建议尝试使用类似于链接的网址,而不是整个 Project/android_asset/..
  • @SurajRao 当您查看我的代码时,我没有使用整个路径。我使用相对路径。为了清楚起见,我只是在我的问题中写了整个路径,我的文件在哪里。
  • 另外一个错字你有字符串'url'而不是变量:this.http.get('url')

标签: android json angular typescript ionic-framework


【解决方案1】:

那些仍在寻找 ios、android 和浏览器解决方案的人,这里是对我有用的方法:

var url = ""; 
    if(this.platform.is('core') || this.platform.is('mobileweb')) {
      url = 'assets/data/localfile.json'; 
    }else{
      if(this.platform.is('android')){
        url = "/android_asset/www/assets/data/localfile.json";
      }else if(this.platform.is('ios')){
        url = 'assets/data/localfile.json'; 
      }
    }
    return this.http.get(url)
    .map((res:Response) => res.json());

并在 config.xml 中添加这一行:-

<allow-navigation href="http://localhost/*" />

【讨论】:

    【解决方案2】:

    要访问.html.scss.ts 文件中的资产,您可以先使用:

    ./assets/[YOUR PATH]
    

    ./ 将允许您引用您的文件,从 src 文件夹开始!

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多