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 TokenDevice Platform 发送到您的服务器。 在接下来的回调中,您将收到您的设备的 设备令牌 ,它可能属于任何平台(iOS 或 Android),将此令牌存储在某处以将其发送到服务器:

push.on('registration', function(data) {
    var deviceToken =  data.registrationId
});

现在有两种获取Device Platform的方式,您可以使用其中任何一种方式:

  1. 使用device plugin

    首先你需要安装这个插件(安装请参考上面link)。安装此插件后,您可以获取设备平台如下:

    var devicePlatform = device.platform;
    
  2. 使用以下方法:

    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)

按照以下步骤操作

  1. 您需要确保已通过 Android SDK 管理器安装了以下项目:

    • Android 支持库版本 23 或更高 支持库的本地 Maven 存储库(以前称为 Android 支持存储库)版本 20 或更高版本
    • Google Play 服务版本 27 或更高版本
    • Google 存储库版本 22 或更高版本
  2. 使用CLI

    安装

    cordova 插件添加 phonegap-plugin-push --variable SENDER_ID="XXXXXXX"

    其中 SENDER_ID="XXXXXXX" 中的 XXXXXXX 映射到 Google 开发者控制台中的项目编号。要查找项目编号,请登录 Google Developer Console、select 您的项目,然后单击下面屏幕截图中的菜单项以显示您的项目编号。

  3. 在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...