Cordova 推送插件 : ecb not called

标签 cordova ember.js phonegap-pushplugin

我正在尝试检索设备注册 ID,以便从我的后端向其发送通知。

我已经尝试过几次:

  1. 在我的对象之外

GambifyApp.NotificationManager = window.GambifyApp.NotificationManager = Ember.Object.extend({
        init: function(){
            var pushNotification = window.plugins.pushNotification;
            window.GambifyApp.NotificationHandler = GambifyApp.NotificationHandler;
            if ( device.platform == 'android' || device.platform == 'Android' )
            {
                console.log('pushNotification Register');
                pushNotification.register(
                    this.successHandler,
                    this.errorHandler, {
                        "senderID":GambifyApp.config.android_sender_id,
                        "ecb":"window.externalOnNotificationGCM"
                    });
        },
    });

 window.externalOnNotificationGCM = function (e) {
            console.log('reg id:' + e.regid);
    };

  • 方法在另一个对象内部(除了 ECB 之外,一切都保持不变:

    "ecb":"window.GambifyApp.NotificationHandler.onHandler"
    
  • 这是我放置处理程序的位置:

    GambifyApp.NotificationHandler =  window.GambifyApp.NotificationHandler = {
        onHandler: function(e){
            console.log('onHandler:');
            if(e.event == "registered") {
                console.log('reg id:' + e.regid);
            }
            console.log(e);
        }
    }
    
  • 我最后的方法

    "ecb":"GambifyApp.NotificationManager.onNotificationGCM"
    
  • 这里添加了管理器类:

    GambifyApp.NotificationManager = window.GambifyApp.NotificationManager = Ember.Object.extend({
        /* ...... */
    
        onNotificationGCM: function(e){
            console.log('MESSAGE received:');
            console.log(e);
        }
    });
    

    我也尝试过不使用窗口对象等。我的成功处理程序总是被触发,但从未触发 ECB。

    最佳答案

    通过将 ecb 指定为 window.GambifyApp.NotificationHandler.onNotificationGCM 解决了该问题:

    pushNotification.register(
        this.successHandler,
        this.errorHandler, {
            "senderID":GambifyApp.config.android_sender_id,
            "ecb":"window.GambifyApp.NotificationHandler.onNotificationGCM"
        }
    );
    

    关于 Cordova 推送插件 : ecb not called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26630558/

    相关文章:

    ios - XCode Clang错误没有带有Push Plugin的此类文件或目录(Cordova项目)

    Cordova 推送通知 (PhoneGap PushPlugin) 未触发 ecb 回调 (onNotificationAPN)

    java - Android - phonegap cordova.jar 的源代码

    javascript - Google 的 reCAPTCHA 与 Ember.js

    flash - 如何更新 Ember 中的 Flash 嵌入对象?

    android - 用于 Cordova 澄清的 Google Cloud Messaging

    javascript - 如何在用户退出应用后自动登录到登录页面?

    ios - Cordova 试图调用电话号码

    javascript - Phonegap 3.3.0 iOS 文件系统插件未触发完成、进度或错误

    rest - 如何在 EmberJS 应用程序中启用 CORS?