如何使用phonegap为Android设置推送通知

时间:2013-03-27 22:58:53

标签: cordova push-notification

我正在开发一个应用程序(现在只是android),我正在尝试添加推送通知。我查看了几个试图调试我的代码以检索我的设备ID的论坛,以便我可以开始发送推送通知。我正在粘贴下面的代码。

提前谢谢!

index.html负责人

    <script>
    var pushNotification;

pushNotification = window.plugins.pushNotification;

// iOS
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, event.badge);
    }
}


// Android
function onNotificationGCM(e) {
    switch( e.event )
    {
        case 'registered':
            if ( e.regid.length > 0 )
            {
                // Your GCM push server needs to know the regID before it can push to this device
                // here is where you might want to send it the regID for later use.
                alert('registration id = e.regid');
            }
        break;

        case 'message':
            // if this flag is set, this notification happened while we were in the foreground.
            // you might want to play a sound to get the user's attention, throw up a dialog, etc.
            if (e.foreground)
            {
                $("#app-status-ul").append('<li>--INLINE NOTIFICATION--' + '</li>');

                // if the notification contains a soundname, play it.
                var my_media = new Media("/android_asset/www/"+e.soundname);
                my_media.play();
            }
            else    // otherwise we were launched because the user touched a notification in the notification tray.
                $("#app-status-ul").append('<li>--BACKGROUND NOTIFICATION--' + '</li>');

            $("#app-status-ul").append('<li>MESSAGE -> MSG: ' + e.payload.message + '</li>');
            $("#app-status-ul").append('<li>MESSAGE -> MSGCNT: ' + e.payload.msgcnt + '</li>');
        break;

        case 'error':
            alert('GCM error = e.msg');
        break;

        default:
            alert('An unknown GCM event has occurred');
        break;
    }
}

// result contains any message sent from the plugin call
function successHandler (result) {
    alert('result = '+result)
}

// result contains any error description text returned from the plugin call
function errorHandler (error) {
    alert('error = '+error)
}


 function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
            alert('device loaded')

    }

    // Cordova is loaded and it is now safe to make calls Cordova methods
    //

$(document).ready(function() {

    alert('device ready jquery')
        // Now safe to use the Cordova API
 pushNotification.register(successHandler, errorHandler,{"senderID":"uvumobile2012","ecb":"onNotificationGCM"});
})

</script>  

的Config.xml

<feature name="http://api.phonegap.com/1.0/device" />

<preference name="phonegap-version" value="2.3.0" />
<preference name="orientation"      value="portrait" />
<preference name="target-device"    value="universal" />
<preference name="fullscreen"       value="false" />
<preference name="android-minSdkVersion" value="4" />
<preference name="splash-screen-duration" value="5000" />
<feature name="http://api.phonegap.com/1.0/file"/>
<feature name="http://api.phonegap.com/1.0/geolocation"/>
<feature name="http://api.phonegap.com/1.0/network"/>
<feature name="http://api.phonegap.com/1.0/notification"/>

<gap:plugin name="BarcodeScanner" /> <!-- latest release -->
<gap:plugin name="GAPlugin" /> <!-- latest release -->
<gap:plugin name="PushPlugin" value="com.plugin.GCM.PushPlugin" />

1 个答案:

答案 0 :(得分:0)

您可以下载示例应用以从以下网址发送推送通知

https://github.com/hollyschinsky/PushNotificationSample30/

您还将从以下网址获取教程

http://devgirl.org/2013/07/17/tutorial-implement-push-notifications-in-your-phonegap-application/