4

我知道这种类型的问题已经提出,但我的问题是,有这么多不同的答案,让我们只是说,文档不是很好,事情是,我想实现推送通知在我的应用程序,但我卡在步骤3和4的this图像。Phonegap推送通知实施

我跟着this教程,但是当我想发送私人令牌到我的服务器,我需要做些什么来区分iOS与iOS?。如果你看一下this教程,你会发现实际上有两种方法可以区分APNS和GCM(它是一个老教程!),但是如果你使用手机版本docs或者本教程,我一直在关注这些方法不是那些。

有没有人知道最新教程,我可以遵循吗?

回答

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"; 
    } 
    

调用此方法在任何你需要的设备平台。

现在你有了设备令牌和设备平台,把它发送到你的服务器。

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

2

PHONEGAP PUSH NOTIFICATION(版本1.3。0)

按照以下步骤

  1. 你需要确保你已经安装了通过Android SDK管理器中的下列项目:

    • Android的支持库版本23或更高 本地支持库(以前称为Android Support Repository)版本20或更高版本的Maven存储库
    • Google Play服务版本27或更高版本
    • 谷歌存储库版本大于或等于22
  2. 安装使用CLI

    科尔多瓦插件添加的PhoneGap-插件推--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...