खोज…


परिचय

रिच सूचनाएं आपको उपयोगकर्ता के डिवाइस पर दिखाई देने पर स्थानीय और दूरस्थ सूचनाओं की उपस्थिति को अनुकूलित करने देती हैं। ऐसी अधिसूचना में ज्यादातर UNNotificationServiceExtension और UNNotificationContentExtension शामिल होते हैं अर्थात सामान्य अधिसूचना को एक विस्तारित तरीके से प्रदर्शित करते हैं।

एक सरल UNNotificationContentExtension बनाना

चरण 1

पर्यावरण को अधिसूचना के लिए उपयुक्त बनाना। सुनिश्चित करें कि आपने पृष्ठभूमि मोड और पुश अधिसूचना को सक्षम किया है पृष्ठभूमि मोड सक्षम करना

पुश सूचनाएं सक्षम करना

चरण 2: एक UNNotificationContentExtension बनाना

तल में + आइकन पर क्लिक करें जो एक लक्ष्य टेम्पलेट बनाता है और अधिसूचना सामग्री विस्तार का चयन करें -> अगला -> सामग्री विस्तार के लिए एक नाम बनाएं -> समाप्त 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 छवियों की तरह दिखाई देगी।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow