2014-09-15 10 views
24

Desidero aggiungere funzionalità nella mia applicazione iOS che l'utente possa rispondere al messaggio direttamente dalla notifica push. Come l'app iMessage lo sta facendo in iOS 8. Sono in grado di aggiungere pulsanti per inviare notifiche, ma non ho trovato alcuna guida su come aggiungere campi di testo. Qualsiasi aiuto per favore. Grazie in anticipo.Aggiunta di campo di testo in Notifica remota, iOS 8

--------------------------------------------- ---------------------------------------------

so come aggiungere azione (pulsanti), ma come aggiungere un campo di testo o leggi il testo per l'input

enter image description here

risposta

14

al momento di chiedere, questo non è stato possibile utilizzando le API fornite. Gli oggetti UIUserNotificationAction rappresentavano solo pulsanti aggiuntivi che è possibile aggiungere, ma non è possibile immettere direttamente il testo. Per ora, dovresti aggiungere un pulsante "Rispondi" e, a tocco, apre l'app con la tastiera visibile in modo che gli utenti possano rispondere.

Con iOS 9 SDK, questo è possibile impostando UIUserNotificationActionBehaviorTextInput come azione di notifica behavior. Assicurarsi di leggere la documentazione per ulteriori informazioni.

Vedere la risposta this per un esempio su come ottenere ciò in Swift.

+0

per controllare un certo codice controllare la risposta qui sotto http://stackoverflow.com/a/31794374/644149 –

9

Non è possibile farlo in iOS 8 o versioni precedenti ma lo stesso è possibile con iOS 9, ho scritto uno blog post relativo allo stesso. E 'abbastanza semplice,

//creating the inline reply notification action 
    let replyAction = UIMutableUserNotificationAction() 
    replyAction.title = "Say Something" 
    replyAction.identifier = "inline-reply" 
    replyAction.activationMode = .Background 
    replyAction.authenticationRequired = false 
    replyAction.behavior = .TextInput 

//creating a category 
    let notificationCategory:UIMutableUserNotificationCategory = UIMutableUserNotificationCategory() 
    notificationCategory.identifier = "INVITE_CATEGORY" 
    notificationCategory .setActions([replyAction], forContext: UIUserNotificationActionContext.Default) 

//registerting for the notification. 
     application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes:[ UIUserNotificationType.Sound, UIUserNotificationType.Alert, 
      UIUserNotificationType.Badge], categories: NSSet(array:[notificationCategory]) as? Set<UIUserNotificationCategory>)) 

sono stato in grado di farlo come qui di seguito,

enter image description here

+0

Qualche idea, come trasferire l'input dell'utente quando si preme il pulsante? Come nell'app iMessage. E hai un bug con la tastiera premanente nera, quando l'iPhone è bloccato da una password e provi a rispondere alla schermata di blocco e hai premuto? –

+0

@RomanTruba Non ricevo correttamente la tua domanda, potresti per favore essere più chiara. Vuoi trasferire l'input dell'utente a dove e quando? – satheeshwaran

+0

Vedere l'esempio dall'app iMessage: quando vedi un banner con un messaggio, tiralo per rispondere, quindi inserisci del testo, quindi premi al banner, non un pulsante "invia". Vedrai il testo che hai inserito nel campo di inserimento. –

Problemi correlati