如何使用phonegap-plugin-push获取GCM ID

时间:2017-03-31 09:10:04

标签: android cordova plugins push

我正在尝试使用最新版本的phonegap-plugin-push获取GCM ID。

我已经从互联网上构建了许多示例代码,但没有一个正在运行。

我已按照phonegaptut.comphonegappro.com以及此phonegap-plugin-push example的步骤进行操作。

我已仔细按照说明操作,但GCM ID不存在。

这些是我采取的步骤:

  • 我在GCM上创建新项目并获取项目编号
  • cordova创建GCM com.phonegaptut.gcm GCM
  • cd GCM
  • cordova platform添加android
  • cordova插件添加phonegap-plugin-push --variable SENDER_ID =" MY SENDER ID"
  • 修改Index.html

<html>
<head>
    <title>PhonegapTut</title>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="jquery.js"></script>
    <style> textarea { width:100%; } </style>    
    <script type="text/javascript">    
        document.addEventListener("deviceready",onDeviceReady,false);

        function onDeviceReady(){    
            console.log("Device Ready");    
            var push = PushNotification.init({ "android": {"senderID": "MY SENDER ID"},"ios": {"alert": "true", "badge": "true", "sound": "true"}, "windows": {} } );

            push.on('registration', function(data) {    
                console.log(data.registrationId);    
                $("#gcm_id").val(data.registrationId);
            });    

            push.on('notification', function(data) {    
                console.log(data.message);    
                alert(data.title+" Message: " +data.message);    
                // data.title,    
                // data.count,    
                // data.sound,    
                // data.image,    
                // data.additionalData    
            });   

            push.on('error', function(e) {
                console.log(e.message);    
            });    
        }

    </script>
</head>
<body>
    <h2>Push Notification Example</h2>
    Your GCM ID : <br/>
    <textarea id="gcm_id" rows="10"></textarea>
</body>
</html>
  • Cordova build android
  • Cordova运行android -device

但是,GCM ID不会出现;任何人都可以看到代码有什么问题吗?

1 个答案:

答案 0 :(得分:1)

这是我的解决方案

  • phonegap创建我的应用程序--template phonegap-template-push
  • phonegap platform add android
  • 使用config.xml中的GCM项目编号编辑和替换SENDER_ID“XXXXXXX”
  

块引用

<plugin name="phonegap-plugin-push" spec="1.6.0">
<param name="SENDER_ID" value="XXXXXXX" />
</plugin>
  • 使用js / index.js文件中的GCM项目编号编辑和替换SENDER_ID“XXXXXXX”
  

块引用

var push = PushNotification.init({
android: {
senderID: "XXXXXXX"
},
browser: {
pushServiceURL: 'http://push.api.phonegap.com/v1/push'
},
ios: {
alert: "true",
badge: "true",
sound: "true"
},
windows: {}
});'
  • 添加新代码以设置注册ID

    console.log('registration event:'+ data.registrationId); document.getElementById(“gcm_id”)。innerHTML = data.registrationId;

  • 添加&lt; div>在index.html中显示GCM ID

  

块引用

<div id="gcm_id"> registration id: </div>
  • phonegap build android
  • phonegap运行android --device

,您的GCM ID将显示在DIV内