Cordova Phonegap推送通知的实现

Cordova Phonegap推送通知的实现,cordova,phonegap-plugins,phonegap-build,phonegap-pushplugin,phonegap-cli,Cordova,Phonegap Plugins,Phonegap Build,Phonegap Pushplugin,Phonegap Cli,我知道以前有人提出过这种类型的问题,但我的问题是,有这么多不同的答案,让我们只说文档不是很好,问题是,我想在我的应用程序上实现推送通知,但我仍然停留在图像的第3步和第4步 我已经学习了本教程,但当我想将私有令牌发送到我的服务器时,我需要做什么才能区分ios和android?。如果你看一下教程,你会发现实际上有两种方法可以区分APN和GCM(这是一个古老的教程!),但是如果你去phonegap或者我一直在遵循的这个教程,这些方法就不是了 有人知道我可以学习的最新教程吗 要实现推送通知,您可以遵循l

我知道以前有人提出过这种类型的问题,但我的问题是,有这么多不同的答案,让我们只说文档不是很好,问题是,我想在我的应用程序上实现推送通知,但我仍然停留在图像的第3步和第4步

我已经学习了本教程,但当我想将私有令牌发送到我的服务器时,我需要做什么才能区分ios和android?。如果你看一下教程,你会发现实际上有两种方法可以区分APN和GCM(这是一个古老的教程!),但是如果你去phonegap或者我一直在遵循的这个教程,这些方法就不是了


有人知道我可以学习的最新教程吗

要实现推送通知,您可以遵循link(您已经遵循了link,这是更新的插件,您提到的其他教程解释了旧的不推荐使用的插件)

要区分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";
    }
    
  • 在需要设备平台的地方调用此方法

    现在您拥有了设备令牌和设备平台,请将其发送到服务器


    首先在服务器中检查设备平台,然后根据平台执行其他步骤。

    PHONEGAP推送通知(版本1.3.0)

    遵循以下步骤

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

    • Android支持库版本23或更高版本 支持库的本地Maven存储库(以前的Android支持存储库)版本20或更高版本
    • Google Play Services版本27或更高版本
    • Google存储库版本22或更高版本
  • 使用

    cordova插件添加phonegap插件推送——变量发送者\u ID=“XXXXXXX”

    其中发送方中的XXXXXXX\u ID=“XXXXXXX”映射到Google开发者控制台中的项目编号。要查找登录到的项目编号,请选择您的项目,然后单击下面屏幕截图中的菜单项以显示您的项目编号

  • 在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)