我知道之前已经提出了这类问题,但我的问题是,有很多不同的答案,我们只是说文档不是那么好,事情是,我想在我的网站上实现推送通知应用程序,但我被困在this图像的第3步和第4步。
我已经按照this教程,但是当我想将私人令牌发送到我的服务器时,我需要做些什么来区分ios和android?。如果你看一下this教程,你会发现实际上有两种方法可以区分APNS和GCM(这是一个老教程!),但如果你去了phonegap docs或者这个教程那么我一直在关注,方法不是那些。
有谁知道我可以关注的最新教程?
答案 0 :(得分:2)
要实施推送通知,您可以按照this链接(您已经关注此链接,这是针对更新的插件,您提到的其他教程已解释旧的已弃用插件)。
要将ios与Android区分开,您可以将设备令牌和设备平台发送到您的服务器。 在以下回调中,您将收到可能属于任何平台(iOS或Android)的设备的设备令牌,将此令牌存储在某处以便将其发送到服务器:
push.on('registration', function(data) {
var deviceToken = data.registrationId
});
现在有两种方法可以使用设备平台,您可以使用其中任何一种:
首先你需要安装这个插件(安装请参考上面的链接)。安装此插件后,您可以按如下方式获取设备平台:
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";
}
在需要设备平台的地方调用此方法。
现在您拥有设备令牌和设备平台,请将其发送到您的服务器。
在服务器中首先检查设备平台,然后根据平台执行其他步骤。
答案 1 :(得分:2)
PHONEGAP PUSH NOTIFICATION(版本1.3.0)
请按照以下步骤操作
您需要确保已通过Android SDK Manager安装了以下项目:
使用 CLI
进行安装cordova插件添加phonegap-plugin-push --variable SENDER_ID =" XXXXXXX"
XXXXXXX在SENDER_ID =" XXXXXXX"映射到Google Developer Console中的项目编号。要查找项目编号,请登录 Google Developer Console ,选择您的项目,然后单击下面屏幕截图中的菜单项以显示您的项目编号。
在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)
<强> More... 强>