我正在尝试让推送通知在我的Sencha Touch应用程序中工作,这将针对Windows Phone,iOS和安卓系统。目前,我专注于让设备注册在Windows Phone应用程序中运行。
请注意:我们在云服务中有一个现有的ASP.NET后端。
我已经安装了Sencha Touch Extensions for Windows Azure,并且已经将PhoneGap PushPlugin安装到我的Sencha应用程序中
我已经按照所有the instructions at the Windows Azure website的方法设置了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端等同的原生代码。我假设注册是通过在Ext.Azure javascript插件中直接调用MPNS的REST调用来完成的(尽管我在源代码中找不到这个调用)。
无论哪种方式,我都不知道如何在Sencha应用中注册可湿性粉剂设备。此外,我可能不会使用Azure Mobile服务,因为我们已经有了一个后端,并且认为使用使用Azure SDK的云服务的Service Bus通知中心会更有意义。所以我实际上只是使用Ext.Azure来实现设备注册的标准化。
鉴于我已经有了云服务后端,我是否需要Azure移动服务?我能想到的唯一需要的理由是,如果WP8的设备注册是通过移动服务进行的。
这整件事让我很困惑。在我的Sencha应用的推送配置中,有一个“频道名称”,我不知道从哪里得到这个名称?但是,嘿,我认为如果它是错误的,我应该仍然能够进行设备注册呼叫。
因此,如果有任何关于如何在WP8、安卓和iPhone上为Sencha应用程序设置推送通知的建议,我将非常感谢。
谢谢你的帮忙
发布于 2014-01-27 20:52:56
@Boomerangertanger指出,你需要那个特定的分支才能让Azure扩展在WP8上工作,这是正确的。我将在下一个版本的guide中记录下这一点。
显然,在PGB正式支持WP8之前,PGB不会合并这个分支。那就是currently only in beta support。
https://stackoverflow.com/questions/21348225
复制相似问题