Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете использовать страницу push-уведомлений в Центре партнеров для прямого взаимодействия с клиентами, отправляя целевые push-уведомления на устройства, на которых установлено приложение универсальной платформы Windows (UWP). Например, вы можете использовать целевые push-уведомления для поощрения клиентов к принятию действий, таких как оценка приложения или попытка новой функции. Вы можете отправлять несколько различных типов push-уведомлений, включая всплывающие уведомления, уведомления плиток и необработанные XML-уведомления. Вы также можете отслеживать частоту запусков приложений, полученных из push-уведомлений. Для получения дополнительной информации об этой функции см. отправку push-уведомлений клиентам вашего приложения.
Прежде чем отправлять целевые push-уведомления клиентам из Центра партнеров, необходимо использовать метод класса StoreServicesEngagementManager в пакете SDK служб Microsoft Store, чтобы зарегистрировать приложение для получения уведомлений. Вы можете использовать дополнительные методы этого класса, чтобы уведомить Центр партнеров о том, что приложение было запущено в ответ на целевое push-уведомление (если вы хотите отслеживать частоту запусков приложений, полученных из ваших уведомлений) и прекратить получение уведомлений.
Настройка проекта
Прежде чем писать любой код, выполните следующие действия, чтобы добавить ссылку на пакет SDK служб Microsoft Store в проекте:
- Если это еще не сделано, установите пакет SDK служб Microsoft Store на компьютере разработки.
- Откройте проект в Visual Studio.
- В обозревателе решений щелкните правой кнопк
ой мыши узел ссылки проекта и щелкнитеДобавить ссылку . - В диспетчере ссылок разверните универсальные окна и щелкните "Расширения".
- В списке пакетов SDK установите флажок рядом с Microsoft Engagement Framework и нажмите кнопку "ОК".
Регистрация для получения push-уведомлений
Чтобы зарегистрировать приложение для получения целевых push-уведомлений из Центра партнеров:
В проекте найдите раздел кода, который выполняется во время запуска, в котором можно зарегистрировать приложение для получения уведомлений.
Добавьте следующую инструкцию в начало файла кода.
using Microsoft.Services.Store.Engagement;
Получите объект StoreServicesEngagementManager и вызовите одну из перегрузок RegisterNotificationChannelAsync в ранее определённом вами коде запуска. Этот метод следует вызывать при каждом запуске приложения.
Если вы хотите, чтобы Центр партнеров создавал собственный URI канала для уведомлений, используйте перегрузку метода RegisterNotificationChannelAsync().
StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault(); await engagementManager.RegisterNotificationChannelAsync();
Это важно
Если ваше приложение также вызывает CreatePushNotificationChannelForApplicationAsync для создания канала уведомлений для WNS, убедитесь, что ваш код не вызывает одновременно CreatePushNotificationChannelForApplicationAsync и перегруженную версию RegisterNotificationChannelAsync(). Если необходимо вызвать оба этих метода, убедитесь, что они вызываются последовательно и ожидают возврата одного метода перед вызовом другого.
Если вы хотите указать URI канала для целевых push-уведомлений из Центра партнеров, вызовите перегрузку RegisterNotificationChannelAsync(StoreServicesNotificationChannelParameters). Например, может потребоваться сделать это, если приложение уже использует службы push-уведомлений Windows (WNS) и вы хотите использовать тот же URI канала. Сначала необходимо создать объект StoreServicesNotificationChannelParameters и назначить свойство CustomNotificationChannelUri URI канала.
StoreServicesNotificationChannelParameters parameters = new StoreServicesNotificationChannelParameters(); parameters.CustomNotificationChannelUri = "Assign your channel URI here"; StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault(); await engagementManager.RegisterNotificationChannelAsync(parameters);
Замечание
При вызове метода RegisterNotificationChannelAsync файл с именем MicrosoftStoreEngagementSDKId.txt создается в локальном хранилище данных приложения для приложения (папка, возвращаемая свойством ApplicationData.LocalFolder ). Этот файл содержит идентификатор, используемый целевой инфраструктурой push-уведомлений. Убедитесь, что приложение не изменяет или не удаляет этот файл. В противном случае пользователи могут получать несколько экземпляров уведомлений, или уведомления могут работать неправильно.
Как целевые push-уведомления направляются клиентам
Когда приложение вызывает RegisterNotificationChannelAsync, этот метод собирает учетную запись клиента Microsoft, вошедшего в систему на устройстве. Позже при отправке целевого push-уведомления в сегмент, включающий этого клиента, Центр партнеров отправляет уведомление на устройства, связанные с учетной записью Майкрософт этого клиента.
Если клиент, который запустил ваше приложение, передает свое устройство другому пользователю, оставаясь при этом вошедшим в учетную запись Майкрософт, помните, что этот другой пользователь может увидеть уведомление, предназначенное исходному клиенту. Это может иметь непредвиденные последствия, особенно для приложений, предлагающих услуги, к которым клиенты могут войти для использования. Чтобы запретить другим пользователям видеть целевые уведомления в этом сценарии, вызовите метод UnregisterNotificationChannelAsync при выходе клиентов из вашего приложения. Дополнительные сведения см. в разделе "Отмена регистрации push-уведомлений " далее в этой статье.
Как приложение реагирует, когда пользователь запускает приложение
После регистрации вашего приложения для получения уведомлений, и когда вы отправляете push-уведомление клиентам вашего приложения из Центра партнеров, один из следующих входных точек в вашем приложении будет вызываться, когда пользователь запускает приложение в ответ на push-уведомление. Если у вас есть код, который требуется запустить при запуске приложения, можно добавить код в одну из этих точек входа в приложение.
Если push-уведомление имеет тип активации переднего плана, переопределите метод OnActivated класса App в вашем проекте и добавьте в этот метод ваш код.
Если push-уведомление имеет тип фоновой активации, добавьте ваш код в метод Run для фоновой задачи .
Например, вы можете вознаграждать пользователей приложения, которые приобрели все платные надстройки в приложении, предоставив им бесплатную надстройку. В этом случае вы можете отправить push-уведомление в сегмент клиентов , ориентированный на этих пользователей. Затем вы можете добавить код, чтобы предоставить им бесплатную покупку в приложении через одну из точек входа, перечисленных выше.
Уведомление Центра партнеров о запуске приложения
Если вы выбрали параметр отслеживание запуска приложения для целевого push-уведомления в Центре партнеров, вызовите метод ParseArgumentsAndTrackAppLaunch из соответствующей точки входа вашего приложения, чтобы уведомить Центр партнеров о том, что приложение было запущено в ответ на push-уведомление.
Этот метод также возвращает исходные аргументы запуска для приложения. При выборе отслеживания скорости запуска приложения для push-уведомлений в аргументы запуска добавляется непрозрачный идентификатор отслеживания, помогающий отслеживать запуск приложения в Центре партнеров. Аргументы запуска приложения необходимо передать в метод ParseArgumentsAndTrackAppLaunch , а этот метод отправляет идентификатор отслеживания в Центр партнеров, удаляет идентификатор отслеживания из аргументов запуска и возвращает исходные аргументы запуска в код.
Способ вызова этого метода зависит от типа активации push-уведомления:
Если push-уведомление имеет тип активности в переднем плане, вызовите этот метод из переопределения метода OnActivated в вашем приложении и передайте аргументы, доступные в объекте ToastNotificationActivatedEventArgs, который передан этому методу. В следующем примере кода предполагается, что файл кода использует инструкциидля пространств имен Microsoft.Services.Store.Engagement и пространства имен 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. } }
Если push-уведомление имеет тип фоновой активации, вызовите этот метод из метода Run для фоновой задачи и передайте аргументы, доступные в объекте ToastNotificationActionTriggerDetail, который передаётся этому методу. В следующем примере кода предполагается, что файл кода использует инструкции для Microsoft.Services.Store.Engagement, Windows.ApplicationModel.Backgroundи пространства имен 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. } }
Отмена регистрации для push-уведомлений
Если вы хотите, чтобы приложение перестало получать целевые push-уведомления из Центра партнеров, вызовите метод UnregisterNotificationChannelAsync .
StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
await engagementManager.UnregisterNotificationChannelAsync();
Обратите внимание, что этот метод запрещает канал, используемый для уведомлений, чтобы приложение больше не получало push-уведомлений от любых служб. После закрытия канал нельзя использовать повторно для любых служб, включая целевые push-уведомления из Центра партнеров и других уведомлений с помощью WNS. Чтобы возобновить отправку push-уведомлений в это приложение, приложение должно запросить новый канал.