2017-09-28 1 views
-1

Je suis actuellement à créer une application qui prend en charge iOS 8 et supérieur. Dans mon application, je veux faire une notification quotidienne comme «mot du jour». J'ai donc essayé localNotification, car iOS 8-9 utilise UILocalNotification alors qu'ios10 utilise NSNotificationcenter. Mais je suis coincé en ce moment parce que j'ai essayé de transmettre la variable dans alertBody. c'est l'impression vide, parce que le mot du jour je l'ai eu de la demande de session d'URL. donc je me demande, comment dois-je faire cela? S'il vous plaît aider!Comment créer une notification comme mot du jour à partir d'une application de dictionnaire?

+0

S'il vous plaît de partager le code pour une meilleure compréhension –

+0

Si sans code, u peut expliquer brièvement le concept? Fondamentalement, afin d'obtenir le mot du jour de mon serveur, j'ai besoin d'employer URLrequest pour obtenir le json et le mettre dans mon objet. Ma question est de savoir comment je vais le faire pour tous les matins à 10h du matin pour avoir un mot du jour de fond même si je n'ouvre pas mon application. Avez-vous une idée? – Andrew

+0

Vous pouvez utiliser les notifications locales pour recevoir des notifications quotidiennes. –

Répondre

0

Vous pouvez utiliser les notifications locales pour recevoir des notifications quotidiennes.

let notification = UILocalNotification() 
notification.fireDate = date 
notification.alertBody = "Alert!" 
notification.alertAction = "open" 
notification.hasAction = true 
notification.userInfo = ["UUID": "reminderID" ] 
notification.repeatInterval = NSCalendarUnit.CalendarUnitDay 
UIApplication.sharedApplication().scheduleLocalNotification(notification) 

Avec KCFCalenderUnitDay votre notification sera tiré chaque jour, mais comme vous l'avez mentionné que vous devez obtenir une réponse pour chaque jour du serveur, l'utilisateur doit cliquer sur la notification. Sans cliquer ni interaction avec l'utilisateur, cette méthode n'est pas appelée. Dans cette méthode, vous pouvez appeler votre service et définir à nouveau une notification locale.

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 

let state : UIApplicationState = application.applicationState 
if (state == .Inactive || state == .Background) { 
    // go to screen relevant to Notification content 
} else { 
    // App is in UIApplicationStateActive (running in foreground) 
} 
} 

Set date 9:00

let date: NSDate = NSDate() 
    let cal: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)! 
    cal.timeZone = NSTimeZone(name: "GMT")! 
    let newDate: NSDate = cal.dateBySettingHour(9, minute: 0, second: 0, ofDate: date, options: NSCalendarOptions())! 

Ajout nombre de jours

NSDateComponents *dayComponent = [[NSDateComponents alloc] init]; 
dayComponent.day = 1; 

NSCalendar *theCalendar = [NSCalendar currentCalendar]; 
NSDate *nextDate = [theCalendar dateByAddingComponents:dayComponent toDate:[NSDate date] options:0]; 


//Swift 
var tenDaysfromNow: Date { 
    return (Calendar.current as NSCalendar).date(byAdding: .day, value: 10, to: Date(), options: [])! 
} 
+0

pour la fonction que vous m'avez fournie, Est-ce lié à la notification push? parce que je suis plus rapide. ne sait pas vraiment obj c .. – Andrew

+0

@Andrew S'il vous plaît vérifier J'ai mis à jour mon code. –

+0

Oh oui, merci pour votre aide. Apprécié! Btw, avez-vous la bonne façon de régler l'heure tous les jours à 9h du matin? J'ai essayé tant de façons. ne fonctionne pas ce que je voulais. – Andrew