0

Ich versuche everlive api für meine {N} NG2 App einzurichten, und ich habe das Set AnknüpfendTelerik Everlive API Nativescript Angular2 Setup-

const Everlive = require('./utils/everlive.all'); 

@Component({ 
    selector: "main", 
    template: "<page-router-outlet></page-router-outlet>" 
}) 
export class AppComponent implements AfterViewInit { 
    el: any; 

    constructor(private utils: Utils) { } 

    ngAfterViewInit() { 
     this.el = new Everlive({ 
      appId: Config.telerikAppId, 
      offlineStorage: true, 
      offline: { 
       syncUnmodified: true, 
       typeSettings: { 
        "ContentTypeName": { 
         "autoGenerateId": false 
        } 
       }, 
       storage: { 
        provider: Everlive.Constants.StorageProvider.FileSystem 
       } 
      }, 
      syncStart: this.startSync, 
      syncEnd: this.endSync 
     }); 

     // start 
     this.el.online(); 

     // track 
     connectivity.startMonitoring((newConnectionType: number) => { 
      switch (newConnectionType) { 
       case connectivity.connectionType.none: 
        console.log("Connection type changed to none."); 
        this.goOffline(); 
        break; 
       case connectivity.connectionType.wifi: 
        console.log("Connection type changed to WiFi."); 
        this.goOnline(); 
        break; 
       case connectivity.connectionType.mobile: 
        console.log("Connection type changed to mobile."); 
        this.goOnline(); 
        break; 
      } 
     }); 
    } 

    startSync() { 
     this.utils.showLoader(); 
    }; 

    endSync(syncInfo) { 
     this.utils.hideLoader(); 
     alert('Sync with server complete'); 
     console.log(syncInfo); 
    }; 

    goOffline() { 
     this.utils.confirmBox('No internet connection, switch to offline mode?', '', 'Yes', 'No') 
      .then((result) => { 
       if (result) { 
        this.el.offline(); 
       } else { 
        this.logout(); 
       } 
      }); 
    } 

    goOnline() { 
     this.utils.confirmBox('Internet connection detected, switch to online mode and sync data?', '', 'Yes', 'No') 
      .then((result) => { 
       if (result) { 
        this.utils.showLoader(); 
        this.el.online(); 
        this.el.sync(); 
       } else { 
        this.logout(); 
       } 
      }); 
    } 

    logout() { 

    } 
} 

Wenn ich die App starten, zwischen einer Reihe von Staaten navigieren in der Hoffnung, dass Daten zwischengespeichert werden. Nun schalten Sie ich die WiFi auf meinem Laptop erwartet, dass es die Daten aus dem Dateisystem zu ziehen, die sie zwischengespeichert hat, sondern sehe ich einen Fehler von zone.js

Unhandled Promise rejection: Response {_body: Error: The Internet connection appears to be offline., status: 200, ok: true, statusText: "", headers: Headers…} ; Zone: <root> ; Task: Promise.then ; Value: Response {_body: Error: The Internet connection appears to be offline., status: 200, ok: true, statusText: "", headers: Headers…} undefined 

das ist, was ich sehe, wenn ich die Antwort protokollieren, wenn die sync abgeschlossen

Object {syncedItems: undefined, syncedToServer: 0, syncedToClient: 0, failedItems: undefined, error: undefined} 

Antwort

0

es scheint, dass das everlive SDK weiß nicht, dass Sie keine Internetverbindung haben und versucht, einen Antrag zu stellen.

Kontrolle dieser Kern mit einigen Beispiel Initialisierungscode https://gist.github.com/anonymous/0d94dc664ed83004e9a349bd5f9eabd0

+0

werden Sie Telerik Backend-Services verwenden oder haben Sie Ihre eigenen Java/PHP-Backend, aus dem ursprünglich die Daten erhalten? – user7138736

+0

Telerik-Backend-Dienste – d1mitar

Verwandte Themen