[QUOTE]
Андрей Поляков написал:
[QUOTE] Глеб Глебов написал:
Вопрос актуален по сей момент, кто сталкивался - отзовитесь.[/QUOTE]
[QUOTE] Алексей Саморуков написал:
Кто знает как сделать так что бы push уведомление открывало не главную приложения, а заданную? Откликнитесь.[/QUOTE]
Не получилось найти ответ в поиске или в справке, написал сам реализацию (не знаю на сколько это правильно, правда, но работает).
Мой Js Выглядит так:
[CODE]// запускаем таймер для проверки сообщений, хорошо, если бы существовал ивент на это дело
var check_notifys_interval = setInterval('checkMyNotifys();',500);
var lastNotificationObject = {};
var notificationParams = {};
function checkMyNotifys() {
lastNotificationObject = {};
notificationParams = {};
lastNotificationObject = BXMobileApp.PushManager.getLastNotification();
// Проверяем, появился ли объект параметров
if ("undefined" != typeof lastNotificationObject.params) {
notificationParams = JSON.parse(lastNotificationObject.params);
// Проверяем, появился ли объект редиректа, в который мы положим ссылку
if ("undefined" != typeof notificationParams.params.redirect) {
// Проверяем, не переходили ли мы уже, будем хранить в локале последний редирект (при переходе на след. страницу параметры могут сохраниться, если знаете как их удалять - пишите)
var last_redirect = localStorage.getItem("last_redirect");
// location.href() - неправильный способ загрузки страницы
// загружаем средствами мобильного АПИ новую страницу, добавляя её в стэк (иначе используем PageManager.loadPageStart )
if (last_redirect != notificationParams.params.redirect) { // если ещё не переходили по такой странице:
// останавливаем таймер
clearInterval(check_notifys_interval);
BXMobileApp.PageManager.loadPageBlank({
url: notificationParams.params.redirect
});
}
localStorage.setItem("last_redirect", notificationParams.params.redirect);
}
}
} [/CODE]
Отправляем пуш на сервере например. так:
[CODE] if (CModule::IncludeModule("pull"))
{
$params = array("params"=>array("redirect"=>"/events/"));
$arMessages = array();
$message = Array(
"USER_ID" => 2, //Идентификатор пользователя
"TITLE" => "Title", //заголовок, только для Android
"APP_ID" => "MyAppID", //Идентификатор приложения
"MESSAGE" => “У нас сегодня акция! Не пропусти!”,
"EXPIRY" => 0, //время жизни уведомления на сервере Apple и Google
"PARAMS"=> $params, // если передавать не строку, тогда преобразует в JSON - потом нужно парсить
"BADGE" => 1 //счетчик на иконке приложения
);
$arMessages[] = $message;
$manager = new CPushManager();
$manager->SendMessage($arMessages);
} [/CODE][/QUOTE]
Андрей, воспользовался вашим js скриптом. По логике он должен всегда срабатывать, но бывают моменты, когда переходишь по пуш уведомлению и переадресации не происходит - видишь страницу открытую в предыдущей сессии или стартовую страницу. А вот когда делаешь первый переход в приложении, открывается пуш новость, а не та ссылка на которую кликнул. Вы не сталкивались с такой ситуацией?