2017-07-11 5 views
0

Ich habe eine Situation, wenn ich eine bestimmte Seite auf einer Ionic 2 App drücken muss, wenn eine Benachrichtigung empfangen wird. Das Verhalten der App ist korrekt, aber die Seite wird zweimal gedrückt (ein Fehler, den ich sogar in der Twitter iOS App bemerkt habe). Kann jemand bitte irgendwelche Fehler in den Code einfügen, der unten eingefügt wird? Vielen Dank!Ionic 2-Seite wird zweimal auf Benachrichtigung gesendet

push.on('notification', function(data) { 
 
    let offer = JSON.parse(data.additionalData.offer); 
 
    this.app.getActiveNav().push(OfferDetailsPage, { 
 
    currentOffer: offer, 
 
    displayArrow: true 
 
    }); 
 
    // Propagate new event to load the new offer 
 
    events.publish('offer:new', offer, Date.now()); 
 
});

Edit: Auch der Behälter der Seiten ist ein Tabs Seite.

+0

'Funktion (Daten {' Sie können einen Tippfehler haben hier –

+0

danke für Ihren Punkt, aber es ist nur ein Tippfehler, den ich beim Schreiben der Frage gemacht hat, das Problem besteht immer noch –

Antwort

0

Ich habe die Lösung dieses Problems gefunden. Wenn iOS eine Benachrichtigung mit phonegap-plugin-push erhält und die Anwendung im Hintergrund läuft, wird sie zweimal verarbeitet: einmal beim Empfang und zweitens, wenn der Benutzer auf die Benachrichtigung klickt. Ein Vorschlag für alle, die mit diesem Problem konfrontiert sind: Weisen Sie Ihren Benachrichtigungen auf dem Server eine zufällige ID zu, und wenn das Front-End es empfängt, wird die Benachrichtigung nur verarbeitet, wenn diese ID nicht im Speicher vorhanden ist.

0

Was bewirkt die vom Ereignis initiierte Funktion "Angebot: neu"?

Haben Sie mit Protokollen überprüft, dass das Benachrichtigungsereignis nicht zweimal ausgelöst wird?

+0

Es löst nur ein Ereignis bei der entsprechenden Seite, um Daten vom Server neu zu laden –

Verwandte Themen