Мы создаем гибридное приложение с использованием Mobile First Platform. Для push-уведомления мы будем использовать уведомления Unicast. Я не мог найти никакой документации относительно отмены подписки. Может ли кто-нибудь помочь мне узнать, как я могу отменить подписку пользователя из push-уведомления в сценарии Unicast Notification.Мобильный первый сервер 7.1 - Отказаться от Push Notification (Одноадресное уведомление)
ответ
Я нашел способ отказаться от подписки на одноадресное уведомление. Не уверен, что это правильный путь, но он работает для меня. Я использовал REST API Runtime Services
REST API для Push в среде среды MobileFirst позволяет использовать серверные приложения на заднем сервере, которые были развернуты за пределами сервера MobileFirst для доступа к функциям Push из конечной точки API REST.
Думал, что он предназначен для серверного сервера, он работает для меня.
String token = getToken("unregister-device");
Сначала получите токен подробности о том, как получить токена here
После того, как вы получите маркер затем реализовать клиент остальные загляните в документацию here
код образца.
HttpClient httpClient = HttpClientBuilder.create().build();
HttpDelete postRequest = new HttpDelete("http://localhost:10080/MyProject/imfpush/v1/apps/MyMobileApp/devices/12121-1212121-121212-12121");
postRequest.addHeader("Content-Type", "application/json");
postRequest.addHeader("Authorization", "Bearer "+token);
HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 204) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
String output;
System.out.println("============Output:============");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
Проверьте официальную документация here, он говорит:
идент (ы) должен быть идентификаторами пользователей, которые были использованы, чтобы подписаться на источник события толчок уведомления.
Что говорит о том, что одноадресные уведомления используют те же подписки событий источника/отписку механизмов, проверить официальную документацию here для того, как отписаться от источника событий.
Исправьте меня, если я ошибаюсь, но разница между источником Unicast и Event заключается в том, что они не являются идентификатором источника события в одноадресном сценарии. В нашем текущем приложении мы просто используем WL.Client.connect(), чтобы подписаться на пользователя для Push. Если механизмы такие же, как источник событий, то каким будет имя псевдонима. Проверьте этот документ, чтобы он объяснил процесс unscuscription, он запрашивает имя обязательного псевдонима. https://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.apiref.doc/html/refjavascript-client/html/WL.Client.Push.html?lang=en –
что я должен добавить в псевдоним, существует ли какой-либо идентификатор источника события по умолчанию, назначенный при процессе подписки на пользователя? –
Вы правы, уведомления из одноадресной рассылки отличаются от уведомлений, основанных на событиях, и строка документации, которую я использовал, чтобы понять ее, вводит в заблуждение. Я делаю пример приложения, чтобы узнать, как отказаться от подписки на одноадресные уведомления. Я думаю, что он очень похож на уведомления тегов (с использованием того же WL.Server.sendMessage с разными parms), поэтому у него может быть специальный тег, от которого вы можете отказаться (например, широковещательные сообщения, имеющие специальный тег Push.ALL). Я дам вам знать, чего я достиг. Также, если вы можете объяснить свое деловое требование, возможно, сможете помочь вам в этом. – Hisham