最新的 phonegap-plugin-push 允许您在 ionic 应用中注册和接收推送通知。它在以下 Github 链接中维护:
https://github.com/phonegap/phonegap-plugin-push
安装:
cordova plugin add https://github.com/phonegap/phonegap-plugin-push --variable SENDER_ID="XXXXXXX"
SENDER_ID="XXXXXXX" 中的XXXXXXX 映射到Google Developer Console 中的项目编号。要查找项目编号登录到 Google Developer Console,请选择您的项目并单击下面屏幕截图中的菜单项以显示您的项目编号。
如果您不创建 Android 应用程序,您可以为此值添加任何内容。
注意:您可能需要在 package.json 中指定 SENDER_ID 变量。
"cordovaPlugins": [
{
"variables": {
"SENDER_ID": "XXXXXXX"
},
"locator": "phonegap-plugin-push"
}
]
注意:如果您计划使用 prepare 方法安装/恢复插件,则需要在 config.xml 中指定 SENDER_ID 变量。否则 prepare 方法将跳过安装插件。
<plugin name="phonegap-plugin-push" spec="1.6.0">
<param name="SENDER_ID" value="XXXXXXX" />
</plugin>
安装后,您现在可以将以下代码添加到您的主 javascript 文件中以注册和接收推送通知:
$ionicPlatform.ready(function () {
var push = PushNotification.init({
android: {
senderID: "XXXXXXX"//, //project token number (12 digit) from https://console.developers.google.com
// forceShow: "true", //force show push notification when app is in foreground on Android only.
},
browser: {
pushServiceURL: 'http://push.api.phonegap.com/v1/push'
},
ios: {
/*senderID: "XXXXXXX",*/ //If using GCM for ios, project token number (12 digit) from https://console.developers.google.com
/*gcmSandbox: 'true',*/ //If using GCM for ios
alert: 'true',
badge: 'true',
sound: 'true',
},
windows: {}
});
PushNotification.hasPermission(function (permissionResult) {
if (permissionResult.isEnabled) {
$log.debug("has permission for push notification");
/*Register device with GCM/APNs*/
push.on('registration', function (data) {
// data.registrationId
$log.debug("data.registrationId: " + data.registrationId);
});
push.on('notification', function (data) {
// data.message,
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
$log.debug(JSON.stringify(data));
});
push.on('error', function (e) {
// e.message
$log.debug("e.message: " + e.message);
//alert(e.message);
});
}
});
}
}