Сценарий
Я разрабатываю бэкэнд для локализованного кроссплатформенного мобильного приложения и хочу отправлять пользователю push-уведомления, когда в бэкэнде происходят какие-то события.
Приложения разработаны для iOS и android с использованием xamarin, а серверной частью является web-api 2, использующий < strong> Центры уведомлений Azure.
Что работает до сих пор
В настоящее время мобильные приложения регистрируются для получения уведомлений через веб-API с помощью Установки. Регистрация через веб-API необходима, потому что сервер создает уникальный пользовательский тег, который будет использоваться для идентификации пользователя при отправке сообщений. В настоящее время я могу отправлять тестовые уведомления на зарегистрированное устройство iOS из раздела «Отладка» серверной части Azure. Вот код, который обрабатывает регистрацию:
[HttpPut]
[Route("")]
public async Task<IHttpActionResult> CreateOrUpdateDeviceInstallation(DeviceInstallationModel deviceInstallationModel)
{
var installation = new Installation
{
InstallationId = deviceInstallationModel.InstallationId,
PushChannel = deviceInstallationModel.Handle
};
switch (deviceInstallationModel.Platform)
{
case "apns":
installation.Platform = NotificationPlatform.Apns;
break;
case "gcm":
installation.Platform = NotificationPlatform.Gcm;
break;
default:
return BadRequest("The given platform is not supported");
}
installation.Tags = new List<string>{ OwnerId };
//OwnerId is the server generated unique user tag
await _notificationHubClient.CreateOrUpdateInstallationAsync(installation);
return Ok();
}
public class DeviceInstallationModel
{
public string InstallationId { get; set; }
public string Platform { get; set; }
public string Handle { get; set; }
}
Моя проблема
Теперь мне нужно отправлять локализованные push-уведомления, когда в серверной части происходят определенные события. Я пытаюсь достичь этого без ведома серверной части ни о локали, ни о платформе приложений. Насколько я понял из документации (Межплатформенные уведомления и localized-notifications), шаблоны позволят мне добиться этого.
Мои вопросы
- Как происходит регистрация шаблона с помощью Установок?
- Как должен выглядеть шаблон, чтобы его можно было локализовать на клиенте, и что должен сделать клиент, чтобы добиться локализации? (Или есть шаблон для каждой локали?)
- Что должна делать серверная часть, чтобы отправлять уведомления, не зная платформу или локаль клиента?
- Мне нужно отправить разные сообщения (текст). Нужен ли мне один (или несколько) шаблонов для каждого сообщения?