Extjs 使用Sencha Touch Windows Phone应用程序+Windows Azure移动服务+自定义后端推送通知

Extjs 使用Sencha Touch Windows Phone应用程序+Windows Azure移动服务+自定义后端推送通知,extjs,azure,windows-phone-8,sencha-touch,azure-mobile-services,Extjs,Azure,Windows Phone 8,Sencha Touch,Azure Mobile Services,我正在尝试在我的Sencha Touch应用程序中获得推送通知,该应用程序将针对Windows Phone、iOS和Android。目前,我的重点是让设备注册在Windows Phone应用程序中工作 请注意:我们在Windows Azure云服务中有一个现有的ASP.NET后端 我已安装,并已将安装到我的Sencha应用程序中 我已经完成了设置Ext.Azure插件的所有步骤 我知道在桌面浏览器中运行时不会进行设备注册,所以我已经在我的Windows Phone设备上运行了我的应用。。。。然而

我正在尝试在我的Sencha Touch应用程序中获得推送通知,该应用程序将针对Windows Phone、iOS和Android。目前,我的重点是让设备注册在Windows Phone应用程序中工作

请注意:我们在Windows Azure云服务中有一个现有的ASP.NET后端

我已安装,并已将安装到我的Sencha应用程序中

我已经完成了设置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中似乎没有任何本机代码等同于iOS和Android端的PhoneGap PushPlugin。我假设注册是通过Ext.Azure javascript插件中直接对MPNS的REST调用完成的,尽管我在源代码中找不到这个调用

不管怎样,我都不知道如何在Sencha应用程序中注册WP设备。此外,我可能不会使用Azure移动服务,因为我们已经有了后端,并且认为使用Azure SDK从云服务使用服务总线通知中心更有意义。所以我只使用Ext.Azure来规范设备注册

鉴于我已经有了云服务后端,我是否需要Azure移动服务?我能想到的唯一需要它的原因是,如果WP8的设备注册是通过移动服务进行的

我被这整件事弄糊涂了。在我的Sencha应用程序的推送配置中,有一个频道名称,我不知道从何处获取?但是,嘿,我想如果这是错误的,我应该仍然能够进行设备注册呼叫

因此,对于如何在WP8、Android和iPhone上为Sencha应用程序提供最佳推送通知的建议,我将不胜感激


感谢您的帮助

@Boomerangertanger正确地指出,Azure扩展需要该特定分支才能在WP8上工作。在下一个版本中,我将尝试在我们的中记下这一点


显然,在PGB正式支持WP8之前,PGB不会合并该fork。。。也就是说。

看起来Sencha/Microsoft的文档中有错误,他们说要从github安装Cordova/PhoneGap PushPlugin,但这没有一个重要的WP8模块cordovalib\commands\PushPlugin.cs。实际上,您需要安装一个具有此文件的分支。我已经安装了该分支,但是,当我调用pushNotification.register或通过Ext.Azure执行此操作时,仍然没有发生任何事情。PushPlugin命令永远不会被触发。我在输出窗口中得到一个错误,说error::Plugin not allowed in config.xml:PushPluginI已经阅读了很多次文档,我根本无法让推送通知工作。我真的觉得这些文档有缺陷,而且范围有限。只需在谷歌上搜索错误消息,您的Cordova/PhoneGap设置可能存在配置问题。您使用的是哪一版本的Cordova/PG?我相信,对于Cordova>3.0,PushPlugin的see步骤4是错误的。。。您现在需要在config.xml中使用。好的,很好,就这样做了。谢谢你的帮助。