मेरे पास एक आईओएस स्पंदन ऐप है और जब ऐप अग्रभूमि में है तो मैं एक स्थानीय अधिसूचना प्रदर्शित करना चाहता हूं।

मैं जिस कोड को पेस्ट करने जा रहा हूं वह तब काम करता है जब ऐप बैकग्राउंड में हो, लेकिन तब नहीं जब वह खुला हो।

अधिसूचना बनाएं:

        // Create notification content
        let content = UNMutableNotificationContent()
        content.title = title
        content.sound = UNNotificationSound.default
        
        // Set trigger
        let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 2, repeats: false)
        
        // Submit request
        let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
        
        center.add(request) { (error : Error?) in
            if let theError = error {
                print(theError.localizedDescription)
            }
        }

विधि में:

    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
}

मैं इसी समस्या के लिए अन्य प्रतिक्रियाओं से प्रेरित निम्नलिखित जोड़ रहा हूं:

        if #available(iOS 10.0, *) {
          UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
        }

उपरोक्त में से कोई भी काम नहीं करता है। यदि ऐप अग्रभूमि में है तो अधिसूचना प्रदर्शित नहीं होती है।

ऐप अग्रभूमि में होने पर भी मुझे स्थानीय अधिसूचना प्रदर्शित करने के लिए क्या करना चाहिए?

0
svprdga 3 सितंबर 2021, 12:34

2 जवाब

सबसे बढ़िया उत्तर

IOS पर सिस्टम स्वचालित रूप से उन सूचनाओं को प्रदर्शित नहीं करता है जो आपके ऐप के अग्रभूमि में चलने के दौरान वितरित की जाती हैं।

दस्तावेज़ीकरण से

यदि आपका ऐप अग्रभूमि में है, तो सिस्टम आपके ऐप को हैंडलिंग के लिए सूचना भेजता है।

आपको userNotificationCenter(_:willPresent:withCompletionHandler:) डेलिगेट फंक्शन लागू करना होगा और कॉल करना होगा वांछित प्रस्तुति विकल्प के साथ प्रदान किया गया पूरा करने वाला हैंडलर, शायद .banner

func userNotificationCenter(_ center: UNUserNotificationCenter, 
                         willPresent notification: UNNotification, 
               withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    completionHandler(.banner)
}

आपको अपने सूचना केंद्र प्रतिनिधि को उपयुक्त स्थान पर स्थापित करना होगा, जैसे didFinishLaunching

1
Paulw11 3 सितंबर 2021, 12:24

सूचनाएं प्रदर्शित करने के लिए flutter_local_notifications का उपयोग करें

-1
Hammad Qasir 3 सितंबर 2021, 10:06