2016-02-15 2 views
0

Мне не удается получить необработанное уведомление на моем WindowsPhone8.Windows Phone 8 Получение необработанного уведомления о выпуске

Круги: https://github.com/barryvdh/PushPlugin/#uccb-wp8-only

Возможность получить уведомление тостов. В моем переключении приложения происходит, как показано ниже.

Дело 1: Если я прошу, чтобы ecb мог получить как сырой, так и тосты, но не канал uri.

Случай 2: Если я не буду комментировать ECB возможность получить тосты и канала, но URI не сырой

Мой код выглядит следующим образом:

if (device.platform == "Win32NT") { 
     console.log("called"); 

      pushNotification.register(
       channelHandler, 
       errorHandler, 
       { 
        "channelName": "channelName", 
        "ecb": onNotificationWP8, 
        "uccb": channelHandler, 
        "errcb": jsonErrorHandler 
       }); 
     } 
     else { 
      console.log("not called"); 
     } 
    } 


function channelHandler(event) { 
    var uri = event.uri; 
    console.log("UUUUURRRRRRRRRRRIIIIIIIII :" + uri); 
} 

function errorHandler(e) { 
} 

function jsonErrorHandler(error) { 
    $("#app-status-ul").append('<li style="color:red;">error:' + error.code + '</li>'); 
    $("#app-status-ul").append('<li style="color:red;">error:' + error.message + '</li>'); 
} 

function onNotificationWP8(e) { 
    console.log("notification called"); 
    if (e.type == "toast" && e.jsonContent){ 
     pushNotification.showToastNotification(successHandler, errorHandler, 
     { 
      "Title": e.jsonContent["wp:Text1"], "Subtitle": e.jsonContent["wp:Text2"], "NavigationUri": e.jsonContent["wp:Param"] 
     }); 
    } 

    if (e.type == "raw" && e.jsonContent) { 
     alert(e.jsonContent.Body); 
    } 
} 

Пробовал с ошибкой и след методов , Пожалуйста, предложите, что может пойти не так.

+0

Похоже, вы пытаетесь Push с помощью настраиваемого плагина и замечаете проблему. Вы видите проблемы с проектом Worklight/MobileFirst, используя функцию «push»? –

+0

Я использую версию рабочего фона \t 6.1.0.02-20151114-1310 – Rajendra

+0

Как размещена проблема, связанная с Worklight? Несмотря на то, что поддержка Push-уведомлений доступна из коробки с помощью Worklight, вы используете настраиваемый плагин. Если вы используете образец здесь: http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v610/PushNotificationsProject.zip и не добавляете какой-либо пользовательский плагин, можете ли вы получить исходный код уведомления? –

ответ

0

Обнаружена проблема, по-видимому, не связана с тем, что она работает. Из описания и фрагмента кода вы полностью обходите клиентский SDK и сервер Worklight и используете настраиваемый плагин Cordova Push. Пользовательский плагин, работающий в вашем приложении, должен быть проанализирован, чтобы понять дисперсию поведения.

Поскольку вы вообще не используете Push-Push, вы можете попробовать отключить его и проверить, помогает ли это вашему делу.

Для этого перейдите к config.xml. Это будет расположено в папке apps/YourAppName/WindowsPhone8/native/Resources.

Ищут:

<feature name="Push"> 
    <param name="wp-package" value="Push" /> 
</feature> 

изменить это на:

<feature name="Push"> 
    <param name="wp-package" value="Push" /> 
    <param name="onload" value="false" /> 
</feature> 

На запрос о Worklight API:

Там нет Worklight API, которые возвращают канал URI. При использовании Worklight SDK для Push все это делается автоматически и скрыто от пользователя. Даже с помощью Push-адаптера на месте невозможно получить URI канала, поскольку для получения этой информации не было опубликовано никаких API.

+0

Спасибо Вивину. К сожалению, отключение Worklight Push не помогло мне в моем случае. Ты прав. Рабочий свет не останавливает меня здесь. Необходимо выяснить, что пошло не так в пользовательском плагине. – Rajendra

0

Наконец удалось решить путем добавления Coding4Fun.Toolkit.Controls.dll

И некоторый код Updation в PushPlugin.cs

использованием Coding4Fun.Toolkit.Controls; с использованием System.Windows.Threading;

недействительным PushChannel_ShellToastNotificationReceived (объект отправителя, NotificationEventArgs е) {

 Deployment.Current.Dispatcher.BeginInvoke(() => 
     { 
      string msg = string.Empty; 
      foreach (var item in e.Collection) 
      { 
       if (item.Key == "wp:Text1") 
       { 
        msg = item.Value; 
       } 
      } 

      MessageBox.Show(msg, "Notification", MessageBoxButton.OK); 

     }); 
    } 

Мое сердце набитый благодаря Rajith, которые помогли мне сделать это.

Смежные вопросы