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