โทร rest-api ทุกครั้งที่เปิดแอปผ่านการแจ้งเตือนแบบพุช [ปิด]

สำหรับแดชบอร์ดสถิติของฉันภายในแบ็กเอนด์ ฉันต้องเรียกส่วนที่เหลือ-api ผ่าน alamofire ที่แจ้งให้แบ็กเอนด์ทราบว่าผู้ใช้เปิดแอปผ่านการแจ้งเตือนแบบพุช

ฉันจะบรรลุเป้าหมายนั้นได้อย่างไร?


person Jochen Österreicher    schedule 26.01.2017    source แหล่งที่มา
comment
คุณได้ลองใช้ applicationWillEnterForeground หรือ applicationDidBecomeActive แล้วหรือยัง   -  person Nazmul Hasan    schedule 26.01.2017
comment
แต่ฉันจะแยกแยะได้อย่างไรว่าแอปนั้นเปิดด้วยตนเองหรือผ่านการคลิกการแจ้งเตือนแบบพุช ฉันจำเป็นต้องเห็นมันบนแดชบอร์ดของฉันหากการพุชมีประสิทธิภาพ   -  person Jochen Österreicher    schedule 26.01.2017
comment
ผ่านการแจ้งเตือนแบบพุช คลิกที่มันหมายความว่าอะไร ? โปรด   -  person Nazmul Hasan    schedule 26.01.2017
comment
คุณได้ลองใช้ UNUserNotificationCenterDelegate - userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler allowanceHandler: @escaping () -› เป็นโมฆะ)   -  person Lucas Palaian    schedule 26.01.2017
comment
@LucasPalaian ฉันจะวางรหัสนี้ได้ที่ไหน ฉันเดาว่าตัวควบคุมมุมมองอาจแตกต่างกันไปตามสถานะของแอป (เริ่มเย็นหรือในพื้นหลัง)   -  person Jochen Österreicher    schedule 26.01.2017
comment
คุณสามารถตั้งค่า appdelegate ของคุณให้ confrom โปรโตคอลนั้นได้ นำเข้า UserNotifications จากนั้น AppDelegate: class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate และในเนื้อหาของคลาส userNotificationCenter(_ center: UNUserNotificationCenter, didReceive การตอบสนอง: UNNotificationResponse, withCompletionHandler allowanceHandler: @escaping () -› เป็นโมฆะ)   -  person Lucas Palaian    schedule 26.01.2017
comment
ฉันใช้มันกับการแจ้งเตือนในท้องถิ่น ฉันไม่รู้ว่าการแจ้งเตือนแบบพุชทำงานอย่างไร แต่ฉันคิดว่ามันเป็นเรื่องเดียวกันเมื่อพูดถึงปฏิสัมพันธ์ของผู้ใช้   -  person Lucas Palaian    schedule 26.01.2017
comment
@LucasPalaian โอเค ฉันลองทำที่บ้าน ระหว่างนี้คุณสามารถเขียนคำตอบทั้งหมดให้ฉันเพื่อทำเครื่องหมายว่าถูกต้อง   -  person Jochen Österreicher    schedule 26.01.2017


คำตอบ (1)


ฉันทำงานร่วมกับการแจ้งเตือนในท้องถิ่น ดังนั้นฉันจะยกตัวอย่างเกี่ยวกับสิ่งที่ฉันทำ ฉันไม่รู้ว่ามันเหมือนกับการแจ้งเตือนแบบพุชหรือไม่

สิ่งที่ฉันทำคือตั้งค่า appdelegate ให้สอดคล้องกับผู้รับมอบสิทธิ์การแจ้งเตือนผู้ใช้

1: นำเข้า

import UserNotifications

2: เพิ่มโปรโตคอล

 class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate

3: อินสแตนซ์ศูนย์การแจ้งเตือน

var notificationCenter: UNUserNotificationCenter!

4: เริ่มต้นและตั้งค่าผู้รับมอบสิทธิ์

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    notificationCenter = UNUserNotificationCenter.current()
    notificationCenter.delegate = self

    return true  
}

5: การตอบสนองของศูนย์การแจ้งเตือน

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {

       print("notification pressed") 
}
person Lucas Palaian    schedule 26.01.2017
comment
คุณสามารถทำสิ่งเดียวกันได้ (เพิ่มผู้รับมอบสิทธิ์ศูนย์ noti) ในคลาสที่แยกจากกัน แต่คุณต้องทำให้มันอินสแตนซ์ใน appDelegate หวังว่ามันจะช่วยได้! - person Lucas Palaian; 26.01.2017
comment
ผลงานเยี่ยมมาก มีรายละเอียดมาก! แต่ต้องบอกว่าใช้งานได้กับ iOS 10 ขึ้นไปเท่านั้น - person Jochen Österreicher; 26.01.2017
comment
โอ้ ใช่ ใช่ ฉันขอโทษ :( - person Lucas Palaian; 26.01.2017
comment
คุณรู้ไหมว่ามันมีลักษณะอย่างไรใน iOS 9? - person Jochen Österreicher; 26.01.2017
comment
ฉันไม่รู้ แต่คุณสามารถลองได้: แอปพลิเคชัน func (_ แอปพลิเคชัน: UIApplication, DidReceive การแจ้งเตือน: UILocalNotification) ในตัวแทนแอป ดูคำถามนี้อาจช่วยคุณได้: stackoverflow.com/questions/32901918 / - person Lucas Palaian; 26.01.2017