私はアプリケーションを構築しており、サーバーからデータを取得して別に表示しようとしています。このために私はストレージを使用して、app.component.tsに私はserver.tsと呼ばれているし、共有ローカルサービスに保存されています:ストレージからのデータの取得と読み込み
app.component.ts:
constructor(platform: Platform, public jobsData: JobsData, public storage: Storage, public local: Local) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
Splashscreen.hide();
jobsData.load().subscribe(res => {
local.localData(res);
});
});
これがローカルでありますサービス:コンストラクタで特定のページ/コンポーネントにデータを表示する
@Injectable()
export class Local {
constructor(public storage: Storage) { }
localData(data){
this.setLocalData(data);
}
setLocalData(data){
this.storage.set('data', JSON.stringify(data));
};
getLocalData(){
return this.storage.get('data').then((value) => {
return JSON.parse(value);
});
};
とイムは、次のように:
local.getLocalData().then((res) => {
this.jobs = res;
console.log(this.jobs)
});
Webコンソールでは、即座にデータを取得して表示しますが、.apkファイルを作成してAndroidにインストールして初めて開くと....プログラムを終了して開くまで何もロードされませんもう一度!
私はそれがなぜこれを行うのかわかりません...または、これを行うより良い方法がある場合はおそらく!私はこの方法で、デバイスがオフラインになっているときにデータを取得する際の読み込み時間を短縮し、最後に格納されたデータをローカルストレージに表示するようにしています。