البرنامج التعليمي: إرسال إعلامات إلى تطبيقات Universal Windows Platform باستخدام Azure Notification Hubs

في هذا البرنامج التعليمي، تقوم بإنشاء مركز إعلام لإرسال إعلامات الدفع إلى تطبيق Universal Windows Platform (UWP). يمكنك إنشاء تطبيق Windows Store فارغ يتلقى الإعلامات الفورية باستخدام خدمة إعلام Windows (WNS). بعد ذلك، يمكنك استخدام مركز الإعلامات لبث الإعلامات الفورية لجميع الأجهزة التي تقوم بتشغيل تطبيقك.

إشعار

يمكنك العثور على التعليمة البرمجية الكامل لهذا البرنامج التعليمي على GitHub.

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

  • أنشئ تطبيقًا في Windows Store
  • إنشاء مركز إعلامات
  • قم بإنشاء نموذج لتطبيق Windows
  • إرسال إعلامات الاختبار

المتطلبات الأساسية

  • اشتراك Azure. إذا لم تكن مشتركًا في Azure، فيمكنك إنشاء حساب مجاني على Azure قبل البدء.
  • Microsoft Visual Studio 2017 أو أحدث. يستخدم المثال في هذا البرنامج التعليمي Visual Studio 2019.
  • تم تثبيت أدوات تطوير تطبيقات UWP
  • حساب Windows Store نشط
  • تأكد من تمكين إعداد الحصول على إعلامات من التطبيقات والمرسلين الآخرين.
    • قم بتشغيل نافذة الإعدادات على جهاز الكمبيوتر الخاص بك.
    • حدد مربع System.
    • حدد Notifications & actions من القائمة اليسرى.
    • تأكد من تمكين إعداد Get notifications from apps and other senders. إذا لم يتم تمكينه، فقم بتمكينه.

يُعد إكمال هذا البرنامج التعليمي شرطًا أساسيًا لجميع البرامج التعليمية الأخرى لـ Notification Hubs لتطبيقات UWP.

أنشئ تطبيقًا في Windows Store

إشعار

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

لإرسال إعلامات إلى تطبيقات UWP، قم بربط تطبيقك بـWindows Store. بعد ذلك، قم بتكوين مركز الإعلامات للتكامل مع WNS.

  1. انتقل إلى Windows Dev Center، وقم بتسجيل الدخول باستخدام حساب Microsoft الخاص بك، ثم حدد Create a new app.

    New app button

  2. اكتب اسمًا لتطبيقك، ثم حدد Reserve product name. يؤدي القيام بذلك إلى إنشاء تسجيل جديد في Windows Store لتطبيقك.

    Store app name

  3. قم بتوسيع إدارة المنتج، ثم حدد هوية المنتج. لاحظ قيم Package SID وPackage/Identity/Name وPackage/Identity/Publisher وPackage/Properties/PublisherDisplayName.

    Partner center apps

  4. ضمن إدارة المنتج، حدد WNS/MPNS، ثم حدد مدخل تسجيل التطبيق. تسجيل الدخول باستخدام حساب Microsoft تفتح صفحة تسجيل التطبيق في علامة تبويب جديدة.

    WNS page

  5. ضمن Essentials، حدد Client credentials: Add a certificate or secret.

    Notification Hub settings on Azure portal

  6. في صفحة Certificates &s secrets ، ضمن Client secrets، حدد New client secret. بعد إنشاء سر عميل (يسمى أيضاً سر التطبيق)، لاحظ ذلك قبل مغادرة الصفحة.

    تحذير

    يمكنك فقط عرض قيم سر العميل (سر التطبيق) مباشرة بعد إنشائها. تأكد من حفظ السر قبل مغادرة الصفحة.

    Client secret on portal

    تحذير

    يعد كل من سر التطبيق وحزمة SID من بيانات اعتماد الأمان المهمة. لا تشارك هذه القيم مع أي شخص أو توزعها مع تطبيقك.

إنشاء مركز إعلامات

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. حدد كل الخدمات في القائمة اليسرى. A screenshot showing select All Services for an existing namespace.

  3. اكتب Notification Hubs في مربع النص Filter services . حدد رمز النجمة بجوار اسم الخدمة لإضافة الخدمة إلى قسم FAVORITES في القائمة اليمنى. حدد مراكز الإعلامات.

    A screenshot showing how to filter for notification hubs.

  4. في صفحة مراكز الإعلام حدد إنشاء على شريط الأدوات.

    A screenshot showing how to create a new notification hub.

  5. في علامة التبويب أساسيات في صفحة مركز الإعلام، بادر باتخاذ الخطوات التالية:

    1. في الاشتراك، حدد اسم اشتراك Azure الذي تريد استخدامه، ثم حدد مجموعة موارد موجودة، أو أنشئ واحداً جديداً.

    2. أدخل اسماً فريداً لمساحة الاسم الجديدة في تفاصيل مساحة الاسم.

    3. تحتوي مساحة الاسم على مركز إعلام واحد أو أكثر، لذا اكتب اسم المركز في تفاصيل مركز الإعلام.

    4. حدد قيمة من القائمة المنسدلة الموقع. تحدد هذه القيمة الموقع الذي تريد إنشاء المحور فيه.

      Screenshot showing notification hub details.

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

    6. اختر خيار التعافي من الكوارث: لا شيء أو منطقة استرداد مقترنة أو منطقة استرداد مرنة. إذا اخترت منطقة الاسترداد المقترنة، يتم عرض منطقة تجاوز الفشل. إذا حددت منطقة استرداد مرنة، فاستخدم القائمة المنسدلة للاختيار من قائمة مناطق الاسترداد.

      Screenshot showing availability zone details.

    7. حدد إنشاء.

  6. عند اكتمال النشر، حدد Go to resource.

تكوين إعدادات WNS للمركز

  1. في فئة NOTIFICATION SETTINGS، حدد Windows (WNS).

  2. أدخل قيم Package SID (مثل "ms-app://<Your Package SID>") ومفتاح الأمان (سر التطبيق) الذي لاحظته من القسم السابق.

  3. انقر فوق Save على شريط الأدوات.

    The Package SID and Security Key boxes

تم الآن تكوين مركز الإعلام الخاص بك للعمل مع WNS. لديك سلاسل الاتصال لتسجيل تطبيقك وإرسال الإعلامات.

قم بإنشاء نموذج لتطبيق Windows

  1. في Visual Studio، افتح القائمة ملف، وحدد New، ثم حدد Project.

  2. في مربع الحوار Create a new project، أكمل الخطوات التالية:

    1. في مربع البحث في الجزء العلوي، اكتب Windows Universal.

    2. في نتائج البحث، حدد Blank App (Universal Windows)، ثم حدد Next.

      New Project dialog

    3. في مربع الحوار Configure your new project، أدخل Project name وLocation لملفات المشروع.

    4. حدد إنشاء.

  3. اقبل الإعدادات الافتراضية للهدف والحد الأدنى لإصدارات النظام الأساسي، وحدد OK.

  4. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع تطبيق Windows Store، وحدد Publish، ثم حدد Associate App with the Store. يظهر معالج Associate Your App with the Windows Store.

  5. في المعالج، قم بتسجيل الدخول باستخدام حساب Microsoft الخاص بك.

  6. حدد التطبيق الذي سجلته في الخطوة 2، وحدد Next، ثم حدد Associate. يؤدي القيام بذلك إلى إضافة معلومات تسجيل Windows Store المطلوبة إلى بيان التطبيق.

  7. في Visual Studio، انقر بزر الماوس الأيمن فوق الحل، ثم حدد Manage NuGet Packages. تفتح نافذة Manage NuGet Packages.

  8. في مربع البحث، أدخل WindowsAzure.Messaging.Managed، وحدد Install، واقبل شروط الاستخدام.

    The Manage NuGet Packages window

    يقوم هذا الإجراء بتنزيل وتثبيت وإضافة مرجع إلى مكتبة Azure Notification Hubs لنظام التشغيل Windows باستخدام حزمة Microsoft.Azure.NotificationHubs NuGet.

  9. افتح ملف المشروع App.xaml.cs، وأضف العبارات التالية:

    using Windows.Networking.PushNotifications;
    using Microsoft.WindowsAzure.Messaging;
    using Windows.UI.Popups;
    
  10. في ملف المشروع App.xaml.cs، حدد موقع الفئة App، وأضف تعريف الأسلوب InitNotificationsAsync التالي. استبدل <your hub name> باسم مركز الإعلامات الذي أنشأته في مدخل Microsoft Azure، واستبدل <Your DefaultListenSharedAccessSignature connection string> بسلسلة الاتصال DefaultListenSharedAccessSignature من نُهج الوصول صفحة مركز الإعلام الخاص بك:

    private async void InitNotificationsAsync()
    {
        var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
    
        var hub = new NotificationHub("<your hub name>", "<Your DefaultListenSharedAccessSignature connection string>");
        var result = await hub.RegisterNativeAsync(channel.Uri);
    
        // Displays the registration ID so you know it was successful
        if (result.RegistrationId != null)
        {
            var dialog = new MessageDialog("Registration successful: " + result.RegistrationId);
            dialog.Commands.Add(new UICommand("OK"));
            await dialog.ShowAsync();
        }
    }
    

    يسترد هذا الرمز قناة URI الخاصة بالتطبيق من WNS، ثم يسجل عنوان URI للقناة باستخدام مركز الإعلامات.

    إشعار

    استبدل العنصر النائب hub name باسم مركز الإعلام الذي يظهر في مدخل Microsoft Azure. استبدل أيضًا العنصر النائب لسلسلة الاتصال بسلسلة الاتصال DefaultListenSharedAccessSignature التي حصلت عليها من صفحة Access Polices لمركز الإعلامات في قسم سابق.

  11. في الجزء العلوي من معالج الحدث OnLaunched في App.xaml.cs، أضف الاستدعاء التالي إلى أسلوب InitNotificationsAsync الجديد:

    InitNotificationsAsync();
    

    يضمن هذا الإجراء تسجيل URI للقناة في مركز الإعلامات في كل مرة يتم فيها تشغيل التطبيق.

  12. انقر بزر الماوس الأيمن فوق Package.appxmanifest وحدد View Code (F7). حدد موقع <Identity .../> قيمة الاسم واستبدلها بالحزمة/الهوية/الاسم، واستبدل قيمة Publisher الخاصة بها بقيمة Package/Identity/Publisher من التطبيق الذي أنشأته سابقا.

  13. لتشغيل التطبيق، اضغط على مفتاح F5 بلوحة المفاتيح. سيظهر مربع حوار يحتوي على مفتاح التسجيل. لإغلاق مربع الحوار، انقر فوق OK.

    Registration successful

تطبيقك جاهز الآن لتلقي الإعلامات المنبثقة.

إرسال إعلامات الاختبار

يمكنك اختبار تلقي الإعلامات بسرعة في تطبيقك عن طريق إرسال الإعلامات في مدخل Microsoft Azure.

  1. في مدخل Microsoft Azure، قم بالتبديل إلى علامة التبويب "Overview"، وحدد Test Send على شريط الأدوات.

    Test Send button

  2. في نافذة Test Send، قم بالإجراءات التالية:

    1. في Platforms، حدد Windows.

    2. في Notification Type، حدد Toast.

    3. حدد إرسال.

      The Test Send pane

  3. شاهد نتيجة عملية الإرسال في قائمة Result أسفل النافذة. ترى أيضًا رسالة تنبيه.

    Result of Send operation

  4. ترى رسالة الإعلام: Test message على سطح المكتب.

    Notification message

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

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