إرسال إعلامات عبر الأنظمة الأساسية باستخدام Azure Notification Hubs

يعتمد هذا البرنامج التعليمي على ما سبقه، إرسال إعلامات إلى مستخدمين محددين باستخدام Azure Notification Hubs. يقدم هذا البرنامج التعليمي محتوى حول كيفية دفع الإعلامات إلى جميع الأجهزة المسجلة لمستخدم معين تمت مصادقته. يتطلب هذا النهج طلبات متعددة لإرسال إشعار إلى كل نظام أساسي عميل مدعوم. يدعم مركز إعلامات Azure القوالب، التي تستعين بها لتحديد الطريقة التي ترغب لجهاز معين تلقي الإعلامات. يبسط هذا الأسلوب إرسال إعلامات عبر النظام الأساسي.

توضح هذه المقالة كيفية الاستفادة من القوالب لإرسال إعلام يستهدف جميع الأنظمة الأساسية. تستخدم هذه المقالة طلبا واحدا لإرسال إعلام محايد للنظام الأساسي. لمزيد من المعلومات التفصيلية حول القوالب، راجع نظرة عامة على مراكز الإعلامات.

هام

لا يتوفر دعم لـ Windows Store وإصدار 8.1 من Windows Phone والإصدارات الأقدم في Visual Studio 2019. لمزيدٍ من المعلومات، راجع Visual Studio 2019 النظام الأساسي المستهدف والتوافق.

ملاحظة

باستخدام Notification Hubs، يمكن للجهاز تسجيل قوالب متعددة باستخدام نفس العلامة. في هذه الحالة، تؤدي رسالة واردة تستهدف العلامة إلى إرسال إعلامات متعددة إلى الجهاز، أي رسالة لكل قالب. تمكنك هذه العملية من عرض نفس الرسالة في إعلامات مرئية متعددة كشارة وإعلامات منبثقة في تطبيق Windows Store.

إرسال إعلامات عبر الأنظمة الأساسية باستخدام القوالب

ملاحظة

تم إهمال خدمة إعلام Microsoft Push (MPNS) ولم تعد مدعومة.

يستعين هذا القسم بنموذج التعليمات البرمجية الذي أنشأته في البرنامج التعليمي إرسال الإعلامات إلى مستخدمين محددين باستخدام Azure Notification Hubs. يمكنك تنزيل عينة التطبيق من GitHub.

لإرسال إعلامات عبر الأنظمة الأساسية باستخدام القوالب، قم بما يلي:

  1. في Visual Studio في مستكشف الحلول، قم بتوسيع مجلد وحدات التحكم ثم افتح الملف RegisterController.cs.

  2. حدد موقع كتلة التعليمات البرمجية في الأسلوب Put الذي ينشئ تسجيلا جديدا، ثم استبدل المحتوى switch بالتعليمة البرمجية التالية:

    switch (deviceUpdate.Platform)
    {
        case "mpns":
            var toastTemplate = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<wp:Notification xmlns:wp=\"WPNotification\">" +
                    "<wp:Toast>" +
                        "<wp:Text1>$(message)</wp:Text1>" +
                    "</wp:Toast> " +
                "</wp:Notification>";
            registration = new MpnsTemplateRegistrationDescription(deviceUpdate.Handle, toastTemplate);
            break;
        case "wns":
            toastTemplate = @"<toast><visual><binding template=""ToastText01""><text id=""1"">$(message)</text></binding></visual></toast>";
            registration = new WindowsTemplateRegistrationDescription(deviceUpdate.Handle, toastTemplate);
            break;
        case "apns":
            var alertTemplate = "{\"aps\":{\"alert\":\"$(message)\"}}";
            registration = new AppleTemplateRegistrationDescription(deviceUpdate.Handle, alertTemplate);
            break;
        case "fcm":
            var messageTemplate = "{\"data\":{\"message\":\"$(message)\"}}";
            registration = new FcmTemplateRegistrationDescription(deviceUpdate.Handle, messageTemplate);
            break;
        default:
            throw new HttpResponseException(HttpStatusCode.BadRequest);
    }
    

    تستدعي هذه التعليمة البرمجية الأسلوب الخاص بالنظام الأساسي لإنشاء تسجيل قالب بدلا من تسجيل أصلي. نظرا لأن تسجيلات القالب مشتقة من التسجيلات الأصلية، فلن تحتاج لإضافة تعديلات على التسجيلات الموجودة.

  3. في مستكشف الحلول، في مجلد وحدات التحكم افتح ملف NotificationsController.cs. استبدل الأسلوب Post بالتعليمات البرمجية التالية:

    public async Task<HttpResponseMessage> Post()
    {
        var user = HttpContext.Current.User.Identity.Name;
        var userTag = "username:" + user;
    
        var notification = new Dictionary<string, string> { { "message", "Hello, " + user } };
        await Notifications.Instance.Hub.SendTemplateNotificationAsync(notification, userTag);
    
        return Request.CreateResponse(HttpStatusCode.OK);
    }
    

    ترسل هذه التعليمة البرمجية إعلاما إلى جميع الأنظمة الأساسية في نفس الوقت. لا تحدد البيانات الأساسية الأصلية. تقوم مراكز الإعلام بإنشاء وتسليم البيانات الأساسية لكل جهاز بقيمة العلامة المتوفرة، كما هو محدد في القوالب المسجلة.

  4. أعد نشر مشروع واجهة برمجة تطبيقات الويب.

  5. قم بتشغيل تطبيق العميل مرة أخرى للتحقق من نجاح التسجيل.

  6. اختياريا، قم بنشر تطبيق العميل إلى جهاز ثان، ثم قم بتشغيل التطبيق. يظهر إعلام على كل جهاز.

الخطوات التالية

الآن بعد إتمام البرنامج التعليمي، يمكنك التعرف على المزيد حول مراكز الإعلامات والقوالب في هذه المقالات: