2017-04-12 46 views
0

我有一個應用程序能夠通過離線模式執行某些功能。一對夫婦的這方面的例子有:最好的方式來檢查應用程序何時在離子2應用程序中離線應用程序

  1. 當應用程序處於脫機狀態,綠燈旁邊用戶配置文件變爲黃色。

  2. 某些列表項目文檔變灰,如果這些項目未下載用於脫機視圖,則只有爲離線查看而下載的文檔不會變灰並且可以查看。

最簡單,最直接的似乎只是有一些那種檢查navigator.onLine

export class OfflineService { 
    public isOffline : boolean = false; 

    constructor() {} 

    checkOffline() { 
    if (!navigator.onLine) { 
     this.isOffline = true; 
    } else { 
     thus.isOffline = false; 
    } 
    } 

} 

函數,並檢查它時執行特定操作,如下載一個文件,也許經常是每個頁面之間的狀態改變,或者每次通過服務創建正常的HTTP請求以創建API。

通過應用程序檢查和維護此狀態的最佳方式是什麼?如果設備確實發生脫機,我的頁面會發生變化以反映該狀態(如上面兩點狀態燈或灰色行項目將可能無法訪問而離線)

+4

你看這個:http://ionicframework.com/docs/native/network/? –

回答

2

您可以安裝網絡插件和訂閱的斷開和連接事件,就像這樣:

import { Network } from 'ionic-native'; 
import { Platform } from 'ionic-angular'; 

export class SomeClass { 
    constructor(public platform: Platform){ 
    platform.ready().then(() => { 
     // IN CASE THE USER DISCONNECT 
     Network.onDisconnect().subscribe(() => { 
     //DO YOUR CODE, SAVE SOMETHING ON LOCALDATABASE, CALL FUNCTION, ETC. 
     } 

     // IN CASE USER RECONECCT BACK 
     Network.onConnect().subscribe(() => { 
     // DO CODE 
     }); 
    } 
    } 
} 

當我要檢查每次或每一個網頁,如果用戶ir連接與否,而不是在每一頁上重複這個代碼,我只是用它在app.components,在連接或斷開我在這是一個boolean的localStorage的節省conn變量,所以當我做連接敏感的工作我檢查在localStorage如果conntruefalse

這種方式對我來說工作得很好,而且對我來說可能也會很好。

希望幫助