Apple Push Notifications - 2 Fragen

GENETIC4

Mitglied
Thread Starter
Dabei seit
01.08.2013
Beiträge
47
Reaktionspunkte
0
Abend! :)

Mal 2 Fragen zu den Apple Push Notifications:

1. Wie schaffe ich es, dass die Push-Notifications angezeigt werden, obwohl die App aktiv ist?
2. Wie kann ich den Sound ändern?

Danke euch schon mal im Voraus.

Mit freundlichen Grüßen
GENETIC4
 
1. garnicht. Die App ist dann ja auch und der Server der App sendet deswegen keine
2. wenn die App keine Option dafür bietet wird der Standard Ton für Benachrichtigungen genommen
 
Achso hatte ich vielleicht nicht ganz richtig beschrieben. Die Fragen beziehen sich natürlich auf die Entwicklung von Apps mit Apple Push-Notifications.
 
1)

Wenn Deine App im Vordergrund ist wird der AppDelegate aufgerufen.
Was Du dann unternimmst oder anzeigst, bleibt Dir überlassen.

https://developer.apple.com/library...html#//apple_ref/doc/uid/TP40008194-CH103-SW1

Absatz: "Handling Local and Remote Notifications"

Code:
The notification is delivered when the application is running in the foreground.

The application calls its delegate’s application:didReceiveRemoteNotification: method (for remote notifications) or application:didReceiveLocalNotification: method (for local notifications) and passes in the notification payload or the local-notification object.

2) Der Sound kann im JSON der Push Notification angegeben werden,
muss aber lokal im App Bundle hinterlegt sein. In der Push Nachricht steht nur der Name der Sounddatei:

https://developer.apple.com/library...html#//apple_ref/doc/uid/TP40008194-CH100-SW1

Siehe unter "sound".
 
@AgentMax:
Gar kein Problem. Ist ja auch schon etwas später.

@pmau:

Danke für die schnelle Antwort.

1. Das verstehe ich noch nicht ganz... Ist es dann wirklich so, dass die Notification wie ein Banner in der App dargestellt wird? Sprich als wenn man außerhalb der App wäre?
2. Das heißt ich könnte also die Sounddatei einfach ins Projekt reinlegen. Richtig? So nun ist es aber so, dass ich am liebsten einfach diesen Akkord-Sound aus iOS 7 nehmen würde. Gibt es da eine Möglichkeit?
 
Zu 1)

Nein. Wenn Du in der App bist und eine Push Notification für diese App kommt, wird nur der AppDelegate aufgerufen.
Was Du dann in Deinem Code machst bleibt Dir überlassen.
Banner und anderes werden nur angeyeigt wenn Deine App nicht im Vordergrund ist.

Wenn Du in iMessage eine Nachricht bekommst wird diese ja auch nicht als Banner oder im Notification Center dargestellt,
sondern einfach als Antwort in der App selber wenn Du gerade in iMessage bist.

Kurz: Ist Deine App im Vordergrund musst Du Dich selber um die Darstellung kümmern.
 
Zu 2)

Wenn Du keinen eigenen Sound benutzt, wird der genommen den der Benutzer eingestellt hat.
Du kannst nicht andere Sounds von iOS angeben, weil das nicht der Auswahl des Benutzers entspricht.
Das würde verwirren. Entweder Du nimmt einen eigenen Sound oder den eingestellten Ton.
 
1: Verstanden.
2: Achso ok. Wähle ich also "default" aus so wird immer der vom Nutzer ausgewählte Ton abgespielt. Mich verwirrt jetzt nur, dass ich überall unter >> Einstellungen > Töne << Akkord ausgewählt habe, aber immer noch der alte Ton aus iOS6 abgespielt wird. Und unter >> Einstellungen > Mitteilungen << kann man das ja nicht verändern.
 
Hat sich erledigt. Habe mir jetzt einfach alle iOS7 Töne gedownloadet.
 
Noch ganz schnell eine andere Frage: Kann man eine App im Hintergrund arbeiten lassen wenn man Sie einmal geöffnet hatte?
 
Man kann eine gewisse Zeitspanne downloads beenden oder Ähnliches.
Benutzt man dabei aber falsche Funktionen, wie z.B Grafik-Methoden, wird man sofort beendet.

Das ganze ist zeitlich begrenzt und man kann nicht sicher sein, dass man alle seine Funktionen bis zum Ende ausführen kann.
Man wird einfach abgeschossen, wenn eine Vordergrund App mehr Resourcen braucht.

EDIT:
https://developer.apple.com/library....html#//apple_ref/doc/uid/TP40007072-CH4-SW47
 
Gut und wie mache ich das? Ich hatte es jetzt mal mit der applicationDidEnterBackground versucht, aber das klappt nicht...
 
https://developer.apple.com/library....html#//apple_ref/doc/uid/TP40007072-CH4-SW20

Direct vom Link:

Du musst allerdings für bestimmte Tasks in Deiner Info.plist Multitasking beantragen.

Code:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
        // Clean up any unfinished task business by marking where you
        // stopped or ending the task outright.
        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];
 
    // Start the long-running task and return immediately.
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 
        // Do the work associated with the task, preferably in chunks.
 
        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    });
}

EDIT: Ich bin jetzt im Bett ... ich schau morgen hier rein.
 
Zurück
Oben Unten