Push-уведомления с использованием приложения Sencha Touch для Windows Phone + мобильных служб Windows Azure + пользовательского бэкенда

Я пытаюсь заставить Push-уведомления работать в моем приложении Sencha Touch, которое будет ориентировано на Windows Phone, iOS и Android. На данный момент я сосредоточен на том, чтобы регистрация устройств работала в приложении Windows Phone.

Обратите внимание: у нас есть существующая серверная часть ASP.NET внутри облачной службы Windows Azure.

Я установил расширения Sencha Touch для Windows Azure и Я установил PushPlugin для PhoneGap в свое приложение Sencha.

Я выполнил все инструкции на веб-сайт Windows Azure по настройке подключаемого модуля Ext.Azure.

Я понимаю, что регистрация устройства не произойдет при работе в настольном браузере, поэтому я запустил свое приложение на своем устройстве Windows Phone... однако ничего не происходит... регистрация устройства не происходит.

Вот соответствующий код контроллера Sencha:

init: function () {

    Ext.Azure.on({
        scope: this,
        'pushregistrationsuccess': this.onPushRegistrationSuccess,
        'pushregistrationfailure': this.onPushRegistrationFailure,
        'pushnotification': this.onPushNotification
    });
},

onPushRegistrationFailure: function (event, opts) {
    alert("The push registration failed");
},

onPushRegistrationSuccess: function (event) {
    alert("onPushRegistrationSuccess: " + event);
},

onPushNotification: function (event) {
    Ext.Msg.alert('Notification', event.message);
},


launch: function (app) {
    //debugger;
    Ext.Azure.init({
        appKey: 'xxxxxxxxxxxxxxxxxx',
        appUrl: 'xxxxxxxxx.azure-mobile.net',
        pushConfig : {
            windowsphone : 'channel_name',
            android      : 'sender_id',
            ios          : true
        }
    });

}

Я просмотрел весь код и не могу понять, как регистрация устройства выполняется в Windows Phone. Похоже, внутри WP8 нет никакого собственного кода, который приравнивается к материалу PhoneGap PushPlugin на стороне iOS и Android. Я предполагаю, что регистрация выполняется через вызов REST непосредственно в MPNS в плагине javascript Ext.Azure (хотя я не могу найти этот вызов в исходном коде).

В любом случае, я не могу понять, как выполнить регистрацию устройства WP в приложении Sencha. Кроме того, я, вероятно, не буду использовать службы Azure Mobile, поскольку у нас уже есть серверная часть, и я думаю, что было бы разумнее использовать центр уведомлений служебной шины из облачной службы с помощью Azure SDK. Так что я действительно использую Ext.Azure только для нормализации регистрации устройств.

Учитывая, что у меня уже есть серверная часть облачной службы, нужны ли мне мобильные службы Azure? Единственная причина, по которой я могу придумать это, заключается в том, что регистрация устройства для WP8 проходит через мобильную службу.

Я очень смущен всем этим. В конфигурации push для моего приложения Sencha есть «имя канала», я понятия не имею, откуда это взять? Но эй, я полагаю, что если это неправильно, я все равно смогу сделать вызов регистрации устройства.

Поэтому я буду очень признателен за любой совет о том, как лучше всего настроить push-уведомления для приложения Sencha на WP8, Android и iPhone, где есть существующий облачный сервис.

Спасибо за вашу помощь


person krisdyson    schedule 25.01.2014    source источник
comment
Похоже, в документации Sencha / Microsoft есть ошибка, они сказали установить Cordova / PhoneGap PushPlugin из github (github .com/phonegap-build/PushPlugin), но в нем нет жизненно важного модуля WP8 (cordovalib\commands\PushPlugin.cs). На самом деле вам нужно установить ветку (github.com/darkphantum/PushPlugin), в которой есть этот файл. .   -  person krisdyson    schedule 26.01.2014


Ответы (1)


@Boomerangertanger правильно указывает, что вам нужна эта конкретная ветвь, чтобы расширения Azure работали на WP8. Я постараюсь отметить это в нашем руководстве в следующем выпуске.

Судя по всему, PGB не объединит этот форк, пока PGB официально не поддержит WP8... что в настоящее время поддерживается только бета-версия.

person arthurakay    schedule 27.01.2014
comment
Я установил эту ветку, однако, когда я вызываю pushNotification.register() или делаю это через Ext.Azure, все равно ничего не происходит. Команда PushPlugin никогда не запускается. Я получаю сообщение об ошибке в окне вывода, в котором говорится, что Error::Plugin не разрешен в config.xml: PushPlugin - person krisdyson; 27.01.2014
comment
Я уже много раз просматривал документацию и не могу заставить push-уведомления работать вообще. Я действительно чувствую, что документы ошибочны и ограничены по объему. - person krisdyson; 27.01.2014
comment
Просто погуглите это сообщение об ошибке, возможно, это проблема конфигурации с настройкой Cordova/PhoneGap. Какую версию Cordova/PG вы используете? - person arthurakay; 27.01.2014
comment
Я считаю, что README (см. шаг 4) для PushPlugin неверен для Cordova ›3.0.. . вам необходимо использовать функцию < /a> в вашем config.xml сейчас. - person arthurakay; 27.01.2014
comment
Хорошо, отлично, это сделало это. Спасибо за вашу помощь. - person krisdyson; 28.01.2014