Phonegap 推送通知实现
Phonegap push notifications implementation
我知道以前有人提出过这种类型的问题,但我的问题是,有太多不同的答案,我们只能说文档不是很好,问题是,我想实现推送通知在我的应用程序上,但我卡在了 this 图片的第 3 步和第 4 步。
我已遵循 this tutorial, but when i want to send the private token to my server, what do i have to do to distinguish ios from android?. If you look at this tutorial you will see that there is actually 2 methods to distinguish APNS and GCM(and it´s an old tutorial!), but if you go to phonegap docs 或我一直遵循的本教程,方法不是那些。
有谁知道我可以遵循的最新教程?
要实现推送通知,您可以关注 this link(您已经关注了,这是针对更新的插件,您提到的其他教程已经解释了旧的弃用插件)。
要区分 ios 和 android,您可以将 Device Token 和 Device Platform 发送到您的服务器。
在接下来的回调中,您将收到您的设备的 设备令牌 ,它可能属于任何平台(iOS 或 Android),将此令牌存储在某处以将其发送到服务器:
push.on('registration', function(data) {
var deviceToken = data.registrationId
});
现在有两种获取Device Platform的方式,您可以使用其中任何一种方式:
-
首先你需要安装这个插件(安装请参考上面link)。安装此插件后,您可以获取设备平台如下:
var devicePlatform = device.platform;
使用以下方法:
function getDevicePlatform() {
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
if (/windows phone/i.test(userAgent)) {
return "Windows";
}
if (/android/i.test(userAgent)) {
return "Android";
}
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
return "iOS";
}
return "unknown";
}
在需要设备平台的地方调用此方法。
现在您同时拥有设备令牌和设备平台,将其发送到您的服务器。
在服务器中先检查设备平台,然后根据平台执行其他步骤。
PHONEGAP 推送通知(版本 1.3.0)
按照以下步骤操作
您需要确保已通过 Android SDK 管理器安装了以下项目:
- Android 支持库版本 23 或更高
支持库的本地 Maven 存储库(以前称为 Android 支持存储库)版本 20 或更高版本
- Google Play 服务版本 27 或更高版本
- Google 存储库版本 22 或更高版本
使用CLI
安装
cordova 插件添加 phonegap-plugin-push --variable SENDER_ID="XXXXXXX"
其中 SENDER_ID="XXXXXXX" 中的 XXXXXXX 映射到 Google 开发者控制台中的项目编号。要查找项目编号,请登录 Google Developer Console、select 您的项目,然后单击下面屏幕截图中的菜单项以显示您的项目编号。
在javascript文件中添加代码
var push = PushNotification.init({
android: {
senderID: "XXXXXXX"
},
browser: {
pushServiceURL: 'http://push.api.phonegap.com/v1/push'
},
ios: {
alert: "true",
badge: "true",
sound: "true"
},
windows: {}
});
push.on('registration', function(data) {
console.log("data.registrationId :"+data.registrationId);
});
push.on('notification', function(data) {
// data.message,
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
});
push.on('error', function(e) {
// e.message
//alert("e.message:"+ e.message)
});
支持的平台
1. Cordova CLI (3.6.3 or newer)
2. Android (cordova-android 4.0.0 or higher)
3. Browser
4. iOS (cordova-ios 4.1.0 or higher)
5. Windows Universal (not Windows Phone 8)
我知道以前有人提出过这种类型的问题,但我的问题是,有太多不同的答案,我们只能说文档不是很好,问题是,我想实现推送通知在我的应用程序上,但我卡在了 this 图片的第 3 步和第 4 步。
我已遵循 this tutorial, but when i want to send the private token to my server, what do i have to do to distinguish ios from android?. If you look at this tutorial you will see that there is actually 2 methods to distinguish APNS and GCM(and it´s an old tutorial!), but if you go to phonegap docs 或我一直遵循的本教程,方法不是那些。
有谁知道我可以遵循的最新教程?
要实现推送通知,您可以关注 this link(您已经关注了,这是针对更新的插件,您提到的其他教程已经解释了旧的弃用插件)。
要区分 ios 和 android,您可以将 Device Token 和 Device Platform 发送到您的服务器。 在接下来的回调中,您将收到您的设备的 设备令牌 ,它可能属于任何平台(iOS 或 Android),将此令牌存储在某处以将其发送到服务器:
push.on('registration', function(data) {
var deviceToken = data.registrationId
});
现在有两种获取Device Platform的方式,您可以使用其中任何一种方式:
-
首先你需要安装这个插件(安装请参考上面link)。安装此插件后,您可以获取设备平台如下:
var devicePlatform = device.platform;
使用以下方法:
function getDevicePlatform() { var userAgent = navigator.userAgent || navigator.vendor || window.opera; if (/windows phone/i.test(userAgent)) { return "Windows"; } if (/android/i.test(userAgent)) { return "Android"; } if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) { return "iOS"; } return "unknown"; }
在需要设备平台的地方调用此方法。
现在您同时拥有设备令牌和设备平台,将其发送到您的服务器。
在服务器中先检查设备平台,然后根据平台执行其他步骤。
PHONEGAP 推送通知(版本 1.3.0)
按照以下步骤操作
您需要确保已通过 Android SDK 管理器安装了以下项目:
- Android 支持库版本 23 或更高 支持库的本地 Maven 存储库(以前称为 Android 支持存储库)版本 20 或更高版本
- Google Play 服务版本 27 或更高版本
- Google 存储库版本 22 或更高版本
使用CLI
安装cordova 插件添加 phonegap-plugin-push --variable SENDER_ID="XXXXXXX"
其中 SENDER_ID="XXXXXXX" 中的 XXXXXXX 映射到 Google 开发者控制台中的项目编号。要查找项目编号,请登录 Google Developer Console、select 您的项目,然后单击下面屏幕截图中的菜单项以显示您的项目编号。
在javascript文件中添加代码
var push = PushNotification.init({ android: { senderID: "XXXXXXX" }, browser: { pushServiceURL: 'http://push.api.phonegap.com/v1/push' }, ios: { alert: "true", badge: "true", sound: "true" }, windows: {} }); push.on('registration', function(data) { console.log("data.registrationId :"+data.registrationId); }); push.on('notification', function(data) { // data.message, // data.title, // data.count, // data.sound, // data.image, // data.additionalData }); push.on('error', function(e) { // e.message //alert("e.message:"+ e.message) });
支持的平台
1. Cordova CLI (3.6.3 or newer)
2. Android (cordova-android 4.0.0 or higher)
3. Browser
4. iOS (cordova-ios 4.1.0 or higher)
5. Windows Universal (not Windows Phone 8)