Phonegap推送通知实施

时间:2016-08-01 10:02:07

标签: cordova phonegap-plugins phonegap-build phonegap-pushplugin phonegap-cli

我知道之前已经提出了这类问题,但我的问题是,有很多不同的答案,我们只是说文档不是那么好,事情是,我想在我的网站上实现推送通知应用程序,但我被困在this图像的第3步和第4步。

我已经按照this教程,但是当我想将私人令牌发送到我的服务器时,我需要做些什么来区分ios和android?。如果你看一下this教程,你会发现实际上有两种方法可以区分APNS和GCM(这是一个老教程!),但如果你去了phonegap docs或者这个教程那么我一直在关注,方法不是那些。

有谁知道我可以关注的最新教程

2 个答案:

答案 0 :(得分:2)

要实施推送通知,您可以按照this链接(您已经关注此链接,这是针对更新的插件,您提到的其他教程已解释旧的已弃用插件)。

要将ios与Android区分开,您可以将设备令牌设备平台发送到您的服务器。 在以下回调中,您将收到可能属于任何平台(iOS或Android)的设备的设备令牌,将此令牌存储在某处以便将其发送到服务器:

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

现在有两种方法可以使用设备平台,您可以使用其中任何一种:

  1. 使用device plugin

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

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

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

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

答案 1 :(得分:2)

PHONEGAP PUSH NOTIFICATION(版本1.3.0)

请按照以下步骤操作

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

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

    进行安装

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

    XXXXXXX在SENDER_ID =" XXXXXXX"映射到Google Developer Console中的项目编号。要查找项目编号,请登录 Google Developer Console ,选择您的项目,然后单击下面屏幕截图中的菜单项以显示您的项目编号。

  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)
    });
    
  4. 支持的平台

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