local Notifications und das 64er Limit

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • local Notifications und das 64er Limit

    Guten Morgen liebe community,

    ich bin neu hier, beschäfitge mich seit noch nicht all zu langer Zeit mit Swift 2 für die ios app Entwicklung.
    Ich muss sagen, aktuell läuft es auch ganz gut !

    Allerdings stoße ich jetzt an meine Grenzen.
    Meine App arbeitet mit sehr vielen local notifications.
    Lt. Apple Doku ist pro App ein Limit von 64 Notifications gesetzt.
    Diese 64 Notifications reichen auf Dauer allerdings nicht aus.

    Habe schon experimentiert, einige Notifications zu repeaten, da diese dann nur als 1 notification gezählt wird. Problem ist, das dieses repeaten dauerhaft läuft und ich nicht sagen kann: "Bitte nur 2x repeaten"
    Damit habe ich keine Lösungen gefunden.

    Habt Ihr einen Tipp für mich, womit ich dieses Limit "umgehen" kann?
    Vielen Dank für eure Bemühungen :)
  • Nehmen wir mal an ich bin ca. 16h am Tag wach. Dann würde Deine App mir alle 15 Minuten eine Notification schicken. Wozu soll das bitte gut sein?

    Ich würde mir eher Gedanken über das Konzept dieser App machen.
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Deine Aussage hat mich jetzt ins Grübeln gebracht.
    Könnte ich nicht mit den "Hintergrundaktualisierungen" arbeiten, womit die App 1x täglich einfach überprüft, welche Notifications für heute anstehen und die dafür bestimmten notifications registriert?

    So wie ich das aus der Doku verstehe, wäre das möglich.
    Aber ich stelle mir die Frage: "Was ist, wenn der User die App komplett killt? Doppelhometaste und App nach oben swipen".
    Dann würde die Hintergrundaktualisierung doch erst ab dem Zeitpunkt wieder starten, wenn der User die App wieder manuell startet,
    Seh ich das richtig?
  • Wenn das über viele Tage hinweg geht:

    Deine Events nach Datum sortieren, für die 64 neusten Notifications erstellen und registrieren.

    Je nachdem über wieviele Tage wir reden, und wie oft deine App wohl geöffnet wird vom Nutzer macht es evtl. durchaus Sinn,
    über einen der möglichen Wege im Hintergrund immer mal wieder prüfen ob am heutigen Tage schon Notifications von dir aktualisiert wurden.
  • ach mensch, das ärgert micht total.
    deine idee wäre natürlich auch machbar - allerdings wenn der user die app wirklich längerer zeit nicht mal öffnet, dann werden die notifications auch nicht registriert.
    somit kommt dann auch eine ausfalllzeit zustanden.

    bekomme so einfach aktuell keine Möglichkeit, dass alles ohne Ausfallzeit zu realisieren.
    Mit der Hintergrundaktualisierungen würde das pefekt klappen.

    Aber sobald die App geklillt und nicht mehr geöffnet wird, läuft die Hintergrundaktualisierungen auch nicht mehr = Ausfallzeit
    Und so wie ich das lese, kann ich dem User beim "killen" der App noch nicht Mal mehr einen Hinweis da lassen, nach dem Moto "Bitte denke daran die App wieder zu starten damit diese wieder ordnungsgemäß funktioniert"
  • Solange Du uns nicht vberrätst was du eigentlich genau vorhast wird dir auch keiner helfen können.

    Ich bleibe dabei, das es ein Konzeptfehler ist. Denn sonst hätten schon viele vor Dir dieses Problem gehabt...
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • im endeffekt ist meine app ganz simpel.

    der User kann Eintragungen durchführen, welche in Core Data gespeichert werden.
    Bei der EIntragung kann er das Datum angeben, zu welchem Zeitpunkt der User eine Notification bekommen möchte.
  • das mit dem Kalender finde ich persönlich keine elegante Lösung.
    Möchte ja den Kalender nicht offentlsichtlich mit Terminen vollmachen ;)

    aber mal zum Thme push notification.
    ist für mich ein neues Thema
    Ich brauche einen eigenen Server der Push Notifications verschickt?
    Oder kann ich dafür einen Server von Apple nutzen?
    oder wie genau läuft das ab?
  • ALSO, kurzer Zwischenbericht.
    Ich habe es geschafft, von meinem Webspace aus (mit Hilfe von PHP) eine Push Nachricht an mein iPhone zu senden.
    War schon sehr stolz auf mich in diesem Moment :)

    Ich könnte mir jetzt folgendes Szenario vorstellen:
    Die Einträge, welche aktuell in CoreData liegen, werden auch seperat in eine MYSQL Datenbank auf meinem Server gespeichert.

    Mihilfe eines Cronjobs lasse ich meine PHP Datei täglich aufrufen.
    Diese überprüft ob in der MYSQL Datenbank Einträge sind, welche am heutigen Tage eine Notification bekommen sollen.
    Wenn ja => schicke Notifcation an die Geräte mit den Device Token, welche den Eintrag gespeichert hat. (kurze Zwischenfrage, darf ich einfach so den Device Token eines Gerätes in meine DB speichern?)

    Lässt sich das so realisieren wie ich das gerade versucht haben zu erklären ? :)
  • also würde das so funktionieren, wie ich mir das vorstelle?
    wenn ja, käme ich direkt zum nächsten Problem:

    Der User kann in der App eine Zeit einstellen, z.B. 18:00 Uhr.
    Würde bedeuten, er möchte alle seine notifications um 18:00 Uhr erhalten.

    Lässt sich das über die Push Notifications irgendwie lösen, oder muss ich mich auf eine feste Zeit dann einigen, wo alle Notifications raus gehen sollen?
  • PetTus schrieb:

    Wenn ja => schicke Notifcation an die Geräte mit den Device Token, welche den Eintrag gespeichert hat. (kurze Zwischenfrage, darf ich einfach so den Device Token eines Gerätes in meine DB speichern?
    Du verwendest den Token, den die Delegate-Methode application:didRegisterForRemoteNotificationsWithDeviceToken: übergeben bekommt. Diesen Token musst du irgendwie aus dieser Methode an deinen Server übertragen und da speichern.
    „Meine Komplikation hatte eine Komplikation.“
  • Kann ja beim ersten Start der App ein NSUserDefault setzen, wenn der Token bereits in meiner DB gespeichert wurde.
    Problem sehe ich aktuell nur mit der Uhrzeit-Situation - oder gibt es dafür auch eine elegante Lösung?