تحية!
في هذه المقالة ، أود أن أشارك تجربتي في استخدام خيار غير واضح (على الأقل بالنسبة لي) لتغيير نص إخطار التطبيق ، وإرسال بيانات إضافية من خلال UNUserNotificationCenter.
آمل أن تكون هذه المقالة مفيدة للمبتدئين في البرمجة لـ iOS على Swift. من المفترض أن لديك بعض الخبرة على الأقل في البرمجة باستخدام Swift لنظام iOS. اعتدت Swift 5 و Xcode 10.2.1. وهكذا ، دعونا نبدأ.
مهمة
لدي تطبيق يعرض إشعارات المستخدم. يتكون الإشعار من النص الأساسي ونص الخلفية.
لذلك ، تتمثل الفكرة في إظهار النص الرئيسي للمستخدم أولاً فقط ، وإذا أراد المستخدم معرفة النص الثانوي ، فيجب عليه النقر فوق الزر "إظهار" في الإشعار.
أستخدم الطريقة التالية لإظهار إشعار (جميع التفسيرات أدناه):
1. أولاً وقبل كل شيء ، يجب علينا تحديد مثيل لـ UNUserNotificationCenter:
class NotificationService: NSObject, UNUserNotificationCenterDelegate { let notificationCenter = UNUserNotificationCenter.current() }
2. بعد ذلك ، نعلن عن طريقة نستخدمها لإرسال الإشعارات:
عندما نسمي هذه الطريقة ، سنرى إشعارًا في الوقت الذي حددناه فيه.
إذا قام المستخدم بسحب الإشعار لأسفل ، فسيظهر الزر "Show me". ثم يجب على المستخدم النقر فوق هذا الزر لرؤية نص الخلفية. للقيام بذلك ، يجب أن نستخدم طريقة تفويض UNUserNotificationCenterDelegate:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { … }
لذلك ، الكود الذي أستخدمه في طريقة المفوض هذا هو كما يلي:
طريقة مندوب بلدي func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { print(“didReceive response”)
وهنا هو ما يبدو:

يوجد داخل المشروع (الذي يمكنك تنزيله من الرابط أدناه) المزيد من التعليمات البرمجية ، ولكن يتم وصف جوهر الفكرة في هذه المقالة.
شكرا لك
رابط للمشروع