Extjs 使用Sencha Touch Windows Phone应用程序+Windows Azure移动服务+自定义后端推送通知
我正在尝试在我的Sencha Touch应用程序中获得推送通知,该应用程序将针对Windows Phone、iOS和Android。目前,我的重点是让设备注册在Windows Phone应用程序中工作 请注意:我们在Windows Azure云服务中有一个现有的ASP.NET后端 我已安装,并已将安装到我的Sencha应用程序中 我已经完成了设置Ext.Azure插件的所有步骤 我知道在桌面浏览器中运行时不会进行设备注册,所以我已经在我的Windows Phone设备上运行了我的应用。。。。然而,什么也没有发生。。。没有发生设备注册 以下是相关的Sencha控制器代码: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设备上运行了我的应用。。。。然而
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中使用。好的,很好,就这样做了。谢谢你的帮助。