Mengonfigurasi aplikasi Anda untuk pemberitahuan push yang ditargetkan

Anda dapat menggunakan halaman Pemberitahuan push di Pusat Mitra untuk berinteraksi langsung dengan pelanggan dengan mengirim pemberitahuan push yang ditargetkan ke perangkat tempat aplikasi Platform Windows Universal (UWP) Anda diinstal. Misalnya, Anda dapat menggunakan pemberitahuan push yang ditargetkan untuk mendorong pelanggan Anda mengambil tindakan, seperti memberi peringkat pada aplikasi Anda atau mencoba fitur baru. Anda dapat mengirim beberapa jenis pemberitahuan push, termasuk pemberitahuan toast, pemberitahuan petak peta, dan pemberitahuan XML mentah. Anda juga dapat melacak laju peluncuran aplikasi yang dihasilkan dari pemberitahuan push Anda. Untuk informasi selengkapnya tentang fitur ini, lihat Mengirim pemberitahuan push ke pelanggan aplikasi Anda.

Sebelum dapat mengirim pemberitahuan push yang ditargetkan kepada pelanggan dari Pusat Mitra, Anda harus menggunakan metode kelas StoreServicesEngagementManager di Microsoft Store Services SDK untuk mendaftarkan aplikasi Anda untuk menerima pemberitahuan. Anda dapat menggunakan metode tambahan dari kelas ini untuk memberi tahu Pusat Mitra bahwa aplikasi Anda diluncurkan sebagai respons terhadap pemberitahuan push yang ditargetkan (jika Anda ingin melacak laju peluncuran aplikasi yang dihasilkan dari pemberitahuan Anda) dan untuk berhenti menerima pemberitahuan.

Mengonfigurasi proyek Anda

Sebelum Anda menulis kode apa pun, ikuti langkah-langkah ini untuk menambahkan referensi ke Microsoft Store Services SDK di proyek Anda:

  1. Jika Anda belum melakukannya, Instal Microsoft Store Services SDK di komputer pengembangan Anda.
  2. Buka proyek Anda di Visual Studio.
  3. Di Penjelajah Solusi, klik kanan simpul Referensi untuk proyek Anda dan klik Tambahkan Referensi.
  4. Di Pengelola Referensi, perluas Universal Windows dan klik Ekstensi.
  5. Dalam daftar SDK, klik kotak centang di samping Microsoft Engagement Framework dan klik OK.

Mendaftarkan pemberitahuan push

Untuk mendaftarkan aplikasi Anda untuk menerima pemberitahuan push yang ditargetkan dari Pusat Mitra:

  1. Di proyek Anda, temukan bagian kode yang berjalan selama startup tempat Anda dapat mendaftarkan aplikasi untuk menerima pemberitahuan.

  2. Tambahkan pernyataan berikut ke bagian atas file kode.

    using Microsoft.Services.Store.Engagement;
    
  3. Dapatkan objek StoreServicesEngagementManager dan panggil salah satu overload RegisterNotificationChannelAsync dalam kode startup yang Anda identifikasi sebelumnya. Metode ini harus dipanggil setiap kali aplikasi Anda diluncurkan.

  • Jika Anda ingin Pusat Mitra membuat URI salurannya sendiri untuk pemberitahuan, panggil kelebihan beban RegisterNotificationChannelAsync().

    StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
    await engagementManager.RegisterNotificationChannelAsync();
    

    Penting

    Jika aplikasi Anda juga memanggil CreatePushNotificationChannelForApplicationAsync untuk membuat saluran pemberitahuan untuk WNS, pastikan kode Anda tidak memanggil CreatePushNotificationChannelForApplicationAsync dan overload RegisterNotificationChannelAsync() secara bersamaan. Jika Anda perlu memanggil kedua metode ini, pastikan Anda memanggilnya secara berurutan dan menunggu pengembalian satu metode sebelum memanggil yang lain.

  • Jika Anda ingin menentukan URI saluran yang akan digunakan untuk pemberitahuan push yang ditargetkan dari Pusat Mitra, panggil overload RegisterNotificationChannelAsync(StoreServicesNotificationChannelParameters). Misalnya, mungkin ingin melakukan ini jika aplikasi Anda sudah menggunakan Windows Push Notification Services (WNS) dan Anda ingin menggunakan URI saluran yang sama. Anda harus terlebih dahulu membuat objek StoreServicesNotificationChannelParameters dan menetapkan properti CustomNotificationChannelUri ke URI saluran Anda.

    StoreServicesNotificationChannelParameters parameters =
        new StoreServicesNotificationChannelParameters();
    parameters.CustomNotificationChannelUri = "Assign your channel URI here";
    
    StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
    await engagementManager.RegisterNotificationChannelAsync(parameters);
    

Catatan

Saat Anda memanggil metode RegisterNotificationChannelAsync , file bernama MicrosoftStoreEngagementSDKId.txt dibuat di penyimpanan data aplikasi lokal untuk aplikasi Anda (folder yang dikembalikan oleh properti ApplicationData.LocalFolder ). File ini berisi ID yang digunakan oleh infrastruktur pemberitahuan push yang ditargetkan. Pastikan aplikasi Anda tidak mengubah atau menghapus file ini. Jika tidak, pengguna Anda mungkin menerima beberapa instans pemberitahuan, atau pemberitahuan mungkin tidak ber perilaku dengan benar dengan cara lain.

Bagaimana pemberitahuan push yang ditargetkan dirutekan ke pelanggan

Saat aplikasi Anda memanggil RegisterNotificationChannelAsync, metode ini mengumpulkan akun Microsoft pelanggan yang saat ini masuk ke perangkat. Kemudian, ketika Anda mengirim pemberitahuan push yang ditargetkan ke segmen yang menyertakan pelanggan ini, Pusat Mitra mengirimkan pemberitahuan ke perangkat yang terkait dengan akun Microsoft pelanggan ini.

Jika pelanggan yang memulai aplikasi Anda memberikan perangkat mereka kepada orang lain untuk digunakan saat mereka masih masuk ke perangkat dengan akun Microsoft mereka, ketahuilah bahwa orang lain mungkin melihat pemberitahuan yang ditargetkan pada pelanggan asli. Ini dapat memiliki konsekuensi yang tidak diinginkan, terutama untuk aplikasi yang menawarkan layanan yang dapat digunakan pelanggan untuk masuk. Untuk mencegah pengguna lain melihat pemberitahuan yang Anda targetkan dalam skenario ini, panggil metode UnregisterNotificationChannelAsync saat pelanggan keluar dari aplikasi Anda. Untuk informasi selengkapnya, lihat Membatalkan pendaftaran pemberitahuan push nanti di artikel ini.

Cara aplikasi Anda merespons saat pengguna meluncurkan aplikasi Anda

Setelah aplikasi Anda terdaftar untuk menerima pemberitahuan dan Anda mengirim pemberitahuan push ke pelanggan aplikasi Anda dari Pusat Mitra, salah satu titik masuk berikut di aplikasi Anda akan dipanggil saat pengguna meluncurkan aplikasi Anda sebagai respons terhadap pemberitahuan push Anda. Jika Anda memiliki beberapa kode yang ingin dijalankan saat pengguna meluncurkan aplikasi, Anda dapat menambahkan kode ke salah satu titik entri ini di aplikasi Anda.

  • Jika pemberitahuan push memiliki jenis aktivasi latar depan, ganti metode OnActivated dari kelas Aplikasi di proyek Anda dan tambahkan kode Anda ke metode ini.

  • Jika pemberitahuan push memiliki jenis aktivasi latar belakang, tambahkan kode Anda ke metode Jalankan untuk tugas latar belakang Anda.

Misalnya, Anda mungkin ingin memberi hadiah kepada pengguna aplikasi yang telah membeli add-on berbayar di aplikasi Anda dengan memberi mereka add-on gratis. Dalam hal ini, Anda dapat mengirim pemberitahuan push ke segmen pelanggan yang menargetkan pengguna ini. Kemudian, Anda dapat menambahkan kode untuk memberi mereka pembelian dalam aplikasi gratis di salah satu titik masuk yang tercantum di atas.

Memberi tahu Pusat Mitra tentang peluncuran aplikasi Anda

Jika Anda memilih opsi Lacak tarif peluncuran aplikasi untuk pemberitahuan push yang ditargetkan di Pusat Mitra, panggil metode ParseArgumentsAndTrackAppLaunch dari titik masuk yang sesuai di aplikasi Anda untuk memberi tahu Pusat Mitra bahwa aplikasi Anda diluncurkan sebagai respons terhadap pemberitahuan push.

Metode ini juga mengembalikan argumen peluncuran asli untuk aplikasi Anda. Saat Anda memilih untuk melacak laju peluncuran aplikasi untuk pemberitahuan push Anda, ID pelacakan buram ditambahkan ke argumen peluncuran untuk membantu melacak peluncuran aplikasi di Pusat Mitra. Anda harus meneruskan argumen peluncuran untuk aplikasi Anda ke metode ParseArgumentsAndTrackAppLaunch , dan metode ini mengirim ID pelacakan ke Pusat Mitra, menghapus ID pelacakan dari argumen peluncuran, dan mengembalikan argumen peluncuran asli ke kode Anda.

Cara Anda memanggil metode ini tergantung pada jenis aktivasi pemberitahuan push:

  • Jika pemberitahuan push memiliki jenis aktivasi latar depan, panggil metode ini dari metode OnActivated yang mengambil alih di aplikasi Anda dan teruskan argumen yang tersedia di objek ToastNotificationActivatedEventArgs yang diteruskan ke metode ini. Contoh kode berikut mengasumsikan bahwa file kode Anda telah menggunakan pernyataan untuk namespace Layanan Microsoft.Services.Store.Engagement dan Windows.ApplicationModel.Activation .

    protected override void OnActivated(IActivatedEventArgs args)
    {
        base.OnActivated(args);
    
        if (args is ToastNotificationActivatedEventArgs)
        {
            var toastActivationArgs = args as ToastNotificationActivatedEventArgs;
    
            StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
            string originalArgs = engagementManager.ParseArgumentsAndTrackAppLaunch(
                toastActivationArgs.Argument);
    
            // Use the originalArgs variable to access the original arguments
            // that were passed to the app.
        }
    }
    
  • Jika pemberitahuan push memiliki jenis aktivasi latar belakang, panggil metode ini dari metode Jalankan untuk tugas latar belakang Anda dan teruskan argumen yang tersedia di objek ToastNotificationActionTriggerDetail yang diteruskan ke metode ini. Contoh kode berikut mengasumsikan bahwa file kode Anda telah menggunakan pernyataan untuk namespace Microsoft.Services.Store.Engagement, Windows.ApplicationModel.Background, dan Windows.UI.Notifications .

    public void Run(IBackgroundTaskInstance taskInstance)
    {
        var details = taskInstance.TriggerDetails as ToastNotificationActionTriggerDetail;
    
        if (details != null)
        {
            StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
            string originalArgs = engagementManager.ParseArgumentsAndTrackAppLaunch(details.Argument);
    
            // Use the originalArgs variable to access the original arguments
            // that were passed to the app.
        }
    }
    

Membatalkan pendaftaran pemberitahuan push

Jika Anda ingin aplikasi berhenti menerima pemberitahuan push yang ditargetkan dari Pusat Mitra, hubungi metode UnregisterNotificationChannelAsync .

StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
await engagementManager.UnregisterNotificationChannelAsync();

Perhatikan bahwa metode ini membatalkan saluran yang sedang digunakan untuk pemberitahuan sehingga aplikasi tidak lagi menerima pemberitahuan push dari layanan apa pun . Setelah ditutup, saluran tidak dapat digunakan lagi untuk layanan apa pun, termasuk pemberitahuan push yang ditargetkan dari Pusat Mitra dan pemberitahuan lain menggunakan WNS. Untuk melanjutkan pengiriman pemberitahuan push ke aplikasi ini, aplikasi harus meminta saluran baru.