Ionic 3.2无法在iOS应用程序中加载JSON

时间:2018-07-06 21:48:45

标签: ios json ionic-framework ionic3

我的应用程序需要加载json数据,并且可以在浏览器(离子服务)和Android应用程序(apk)中运行,但是json不会加载到我的IOS应用程序(ipa)中。

我正在使用Ionic Pro构建应用程序,以下是相关的版本号: | macOS版本| 10.13.2 | | Xcode版本| Xcode 9.2 | | |生成版本9C40b | | Node.js版本| v8.11.1 | | Cordova CLI版本| 7.1.0 | | npm版本| 5.6.0

当前,我的客户端正在将.json文件推送到其Web服务器,而我正在从那里读取该文件。这是我们希望继续使用的过程,但是我还尝试了加载本地存储在应用程序中的json,并从firebase获取json(请参阅代码中的2条注释掉的行)。所有这三种方法都可以在浏览器/ Android中工作,而在IOS中失败。

这是我的提供程序中应加载json的代码(仅相关部分,公共仓库https://github.com/marvabban/antitour中的完整代码):

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Storage } from '@ionic/storage';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class DataProvider {

  data: any;
  sitePrefix: string = "http://xxxxxx.com/app-data/";
  //sitePrefix: string = "https://xxxx.firebaseapp.com/";
  //sitePrefix: string = "assets/";
  cities: Array<any> = []
  currentCityID: number = -1;
  currentCity: any = {};
  currentStory: number = 0;

  constructor(public http: HttpClient, public storage:Storage) {
    this.load();
  }

  load() {
    let data:Observable<any> = this.http.get(this.sitePrefix+'data/data5.json');
    data.subscribe(result => {
      this.data = result;
      this.storage.set('localdata', JSON.stringify(this.data));
    });
  }
}

1 个答案:

答案 0 :(得分:0)

您可能会发现我在此线程上建议的解决方案很有帮助https://stackoverflow.com/questions/48689049/ngx-translate-not-working-on-ios-device/62694449#62694449