

cordovaを使用してハイブリットアプリを作成しています。

下記プラグインを使用してAndroidでプッシュ通知を行おうとしていますが、  
アプリがバックグラウンドになった場合、プッシュ通知が送信されません。  
アプリがフォアグランドの場合は問題なく送信されます。

下記参考サイトとほぼ同じに実装しています。  
原因わかるでしょうか。

◎参考サイト  
<http://symfoware.blog68.fc2.com/blog-entry-1662.html>

◎使用プラグイン  
<https://github.com/phonegap-build/PushPlugin>

◎実装コード（devicereadyのタイミングで下記を実行しています）

[code]

    var pushNotification;
    
    pushNotification = window.plugins.pushNotification;
    
    if (device.platform == 'android' || device.platform == 'Android') {
        pushNotification.register(
            successHandler,
            errorHandler, {
                "senderID": 12345678,//実際は正しいIDを設定しています。
                "ecb": "onNotification"
            });
    } else {
        // ios
        pushNotification.register(
            tokenHandler,
            errorHandler, {
                "badge": "true",
                "sound": "true",
                "alert": "true",
                "ecb": "onNotificationAPN"
            });
    }
    
    function successHandler(result) {
        console.log('result = ' + result);
    }
    
    function tokenHandler(result) {
        console.log('device token = ' + result);
    }
    
    function errorHandler(error) {
        console.log('error = ' + error);
    }
    
    function onNotificationAPN(event) {
        if (event.alert) {
            navigator.notification.alert(event.alert);
        }
        if (event.sound) {
            var snd = new Media(event.sound);
            snd.play();
        }
        if (event.badge) {
            pushNotification.setApplicationIconBadgeNumber(successHandler, errorHandler, event.badge);
        }
    }
    
    // Android and Amazon Fire OS
    window.onNotification = function(e) {
        switch (e.event) {
            case 'registered':
                if (e.regid.length > 0) {
                    console.log("regID(device token) = " + e.regid);
                }
                break;
            case 'message':
                if (e.foreground) {
                    alert(e.payload.default);
                } else {
                    if (e.coldstart) {
                        console.log("=== message.background.coldstart ===");
                    } else {
                        console.log("=== message.background.non coldstart ===");
                    }
                }
                break;
            case 'error':
                console.log('error');
                break;
            default:
                break;
        }
    };
    
[/code]


CC BY-SA 3.0
2015-05-19T02:21:31.330
10349
2015-08-17T03:53:33.843
2015-05-19T02:57:23.633
8360
8360
question
cordova
androidでのプッシュ通知がバックグラウンド動作しない


AndroidManifestに以下のパーミッションがない時、質問の現象のようになりますが、  
どうでしょうか。

[code]

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    
[/code]


CC BY-SA 3.0
2015-05-19T02:38:37.313
10350
2015-05-19T02:38:37.313
7256
10349
answer