खोज…
परिचय
रिच सूचनाएं आपको उपयोगकर्ता के डिवाइस पर दिखाई देने पर स्थानीय और दूरस्थ सूचनाओं की उपस्थिति को अनुकूलित करने देती हैं। ऐसी अधिसूचना में ज्यादातर UNNotificationServiceExtension और UNNotificationContentExtension शामिल होते हैं अर्थात सामान्य अधिसूचना को एक विस्तारित तरीके से प्रदर्शित करते हैं।
एक सरल UNNotificationContentExtension बनाना
चरण 1
पर्यावरण को अधिसूचना के लिए उपयुक्त बनाना। सुनिश्चित करें कि आपने पृष्ठभूमि मोड और पुश अधिसूचना को सक्षम किया है
चरण 2: एक UNNotificationContentExtension बनाना
तल में + आइकन पर क्लिक करें जो एक लक्ष्य टेम्पलेट बनाता है और अधिसूचना सामग्री विस्तार का चयन करें -> अगला -> सामग्री विस्तार के लिए एक नाम बनाएं -> समाप्त
चरण 3: बनाई गई एक्सटेंशन की info.plist फ़ाइल को कॉन्फ़िगर करना
NSExtension का शब्दकोश दर्शाता है कि अधिसूचना सामग्री कैसे प्रदर्शित की जाती है, ये प्राप्त अधिसूचना को लंबे समय तक दबाने पर किया जाता है
- UNNotificationExtensionOverridesDefaultTitle: हम डिफ़ॉल्ट रूप से अपने नोटिफिकेशन के लिए कस्टम टाइटल दे सकते हैं, यह एप्लिकेशन का नाम प्रदर्शित करता है। शीर्षक
self.title = myTitle
- UNNotificationDefaultContentHidden: यह बूलियन निर्धारित करता है कि अधिसूचना के डिफ़ॉल्ट निकाय को छिपाया जाना है या नहीं
- UNNotificationCategory: श्रेणी आपके आवेदन में
UNUserNotificationCenter
में बनाई गई है। यहां यह या तो एक स्ट्रिंग या स्ट्रिंग की एक सरणी हो सकती है, इसलिए प्रत्येक श्रेणी विभिन्न प्रकार के डेटा दे सकती है जिससे हम अलग-अलग यूआई बना सकते हैं। हमारे द्वारा भेजे गए पेलोड में इस विशेष एक्सटेंशन को प्रदर्शित करने के लिए श्रेणी का नाम होना चाहिए - UNNotificationExtensionInitialContentSizeRatio: प्रारंभिक सामग्री का आकार अर्थात जब पहली बार सामग्री की चौड़ाई के संबंध में प्रारंभिक आकार के लिए ContentExtension प्रदर्शित करता है। यहाँ 1 का अर्थ है कि ऊँचाई चौड़ाई के बराबर होगी
चरण 4: हमारे आवेदन में UNNotificationAction
और UNNotificationCategory
बनाना
अपने ऐप के AppDelegate.swift didFinishLaunchingWithOptions
फ़ंक्शन में जोड़ें
let userNotificationAction:UNNotificationAction = UNNotificationAction.init(identifier: "ID1", title: "வணக்கம்", options: .destructive)
let userNotificationAction2:UNNotificationAction = UNNotificationAction.init(identifier: "ID2", title: "Success", options: .destructive)
let notifCategory:UNNotificationCategory = UNNotificationCategory.init(identifier: "CATID1", actions: [userNotificationAction,userNotificationAction2], intentIdentifiers: ["ID1","ID2"] , options:.customDismissAction)
UNUserNotificationCenter.current().delegate = self
UNUserNotificationCenter.current().setNotificationCategories([notifCategory])
UIApplication.shared.registerForRemoteNotifications()
हमने पहचानकर्ता ID1
और ID2
साथ दो UNNotificationAction
बनाए हैं और उन कार्रवाइयों को पहचानकर्ता UNNotificationCategory
साथ CATID1
( CATID1
की info.plist फ़ाइल में कैटिगरी वही है, जो हमें यहां पेलोड और प्लिस्ट फ़ाइल में उपयोग की जानी चाहिए)। हम अपने आवेदन के UNUserNotificationCenter
लिए श्रेणी सेट करते हैं और अगली पंक्ति में हम अधिसूचना के लिए पंजीकरण कर रहे हैं जो didRegisterForRemoteNotificationsWithDeviceToken
फ़ंक्शन को कॉल करता है जहां हमें डिवाइस टोकन मिलता है
नोट: अपने AppDelegate.swift में import UserNotifications
करना न भूलें और UNUserNotificationCenterDelegate
जोड़ें
चरण 5: नोटिफिकेशन कॉन्टेंट के लिए सैंपल पेलोड
'aps': {
'badge': 0,
'alert': {
'title': "Rich Notification",
'body': "Body of RICH NOTIFICATION",
},
'sound' : "default",
'category': "CATID1",
'mutable-content':"1",
},
'attachment': "2"
चरण 6: ContentExtension को कॉन्फ़िगर करना
अधिसूचना कार्रवाई के दौरान श्रेणी के लिए संबंधित क्रियाएं स्वचालित रूप से प्रदर्शित की जाती हैं। हमें यह देखने की कोड देता है कि इसका प्रदर्शन कैसा है
import UIKit
import UserNotifications
import UserNotificationsUI
class NotificationViewController: UIViewController, UNNotificationContentExtension {
@IBOutlet var imageView: UIImageView?
override func viewDidLoad() {
super.viewDidLoad()
}
func didReceive(_ notification: UNNotification) {
self.title = "Koushik"
imageView?.backgroundColor = UIColor.clear
imageView?.image = #imageLiteral(resourceName: "welcome.jpeg")
}
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
self.title = "Koushik"
imageView?.image = UIImage.init(named: "Success.jpeg")
if(response.actionIdentifier == "ID1")
{
imageView?.image = UIImage.init(named: "Success.jpeg")
}
else
{
imageView?.image = UIImage.init(named: "welcome.jpeg")
}
}
}
चरण 7: परिणाम
सूचना प्राप्त करने और लंबे समय तक प्रेस / क्लिक करने के बाद, अधिसूचना इस तरह दिखाई देती है
शीर्षक "कौशिक" है, क्योंकि हमने यस के रूप में UNNotificationExtensionOverrideDefaultTitle
self.title = "Koushik"
UNNotificationExtensionOverrideDefaultTitle
self.title = "Koushik"
और UNNotificationExtensionOverrideDefaultTitle
। चरण 3 में हमने UNNotificationExtensionDefaultContentHidden
को NO के रूप में दिया यदि इसका YES है तो अधिसूचना 3 और 4 छवियों की तरह दिखाई देगी।