У нас есть Azure Notification Hub setup, с APNS, сконфигурированным в режиме производства, с использованием нашего Сертификата APNS производства. Мы регистрируем наши тестовые устройства (используя TestFlight/Production build и сертификат) для APNS, а затем в ANH с тегом dealer-1
. Мы можем отправлять уведомления с использованием нашего производственного сертификата и зарегистрированного идентификатора устройства с успехом при непосредственном использовании APNS, однако, когда мы используем «Test Send», мы получаем «Успешную отправку» на 1 устройство (или сколько бы мы ни зарегистрировались). Уведомление не получено. Если мы снова запустим «Test Send», то отправятся 0 устройств.Устройство Notification Hub, исчезающее после Push (APNS)
В журналах мы видим «APNS Errors» на каждое устройство, за отправку теста. Я не вижу никакого способа узнать, что такое ошибки на самом деле, так что это абсолютно бесполезная метрика.
Я проверил все этапы устранения неполадок и много раз подтверждал, что все настроено в разделе «Производство».
Рассмотрев другие вопросы, ответы были по линиям:
- .. регистрация сертификат песочнице, а затем изменить его в производство. К сожалению, мы создали этот хаб с нуля как Production, пытаясь обойти эту потенциальную проблему.
- .. регистрирует устройства песочницы (и, следовательно, жетоны) против производственного сертификата. К сожалению, я тщательно контролировал это и гарантировал, что мы регистрируем только сборки TestFlight (таким образом, Production) против ANH.
- .. выгрузка неправильного сертификата. Я подтвердил тестом Push Notification Tester, как указано выше, что сертификат верен (отпечаток подтвержден, повторно загружен и т. Д.) И работает для отправки на устройства через конечную точку APNS производства.
Название ресурса: восемь-технологии/реагировать нажатием-уведомление ступица
В приложении Процесс регистрации выглядит следующим образом:
- регистры устройств для уведомления толчка
Событие регистрации обрабатывается в проекте iOS (событие AppDelegate).
public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken) { //base.RegisteredForRemoteNotifications(application, deviceToken); App.ConfigurePushNotifications(deviceToken.ToString()); }
ConfigurePushNotifications в проекте XF Shared ..
public static void ConfigurePushNotifications(string deviceToken) { var azureComm = DependencyService.Get<Interop.IAzureCommunication>(); azureComm.RegisterForPushTags( "sb://eight-technology.servicebus.windows.net/", ".. token ..", "react-push-notification-hub", deviceToken, StateManager.SelectedNodes.Select(m => "dealer-" + m).ToArray()); }
Реализация в значительной степени в соответствии с примером кода при условии (содержится в проекте IOS)
public class AzureCommunication : DealerwebReact.Interop.IAzureCommunication { public void RegisterForPushTags(string url, string key, string hubName, string deviceToken, string[] tags) { var cs = SBConnectionString.CreateListenAccess(new NSUrl(url), key); var hub = new SBNotificationHub(cs, hubName); hub.RegisterNativeAsync(deviceToken, new NSSet(tags), err => { if (err != null) Console.WriteLine("Error: " + err.Description); else Console.WriteLine("Success"); }); } }
Спасибо Никиту - Это руководство я играл примерно с да. Я обновляю свой пост с помощью некоторого кода, но я не манипулирую APN Token вообще, он передается как NSString прямо на ваши классы. Когда я регистрирую его, он находится в формате '<... ... ...>', который, как я считаю, является правильным, поскольку это то, что я могу использовать в тесте APNS. Вам это нужно изменить вообще? –
Предоставленный код - довольно прямолинейный, когда дело касается регистрации. Любые идеи очень приветствуются. Пример токена устройства: '<97e0614c 3c18b3d7 a8d5274b ca7037dc 3e00e703 635d5172 3c755d9c 8616f375>' –
@RudiVisser Не видел ваш вопрос до сих пор. Я действительно выделяю меньше и больше символов и любых таких пробелов: 'deviceToken.ToString(). Замените (" <", string.Empty) .Replace ("> ", string.Empty) .Replace (" ", string.Empty);' – hvaughan3