2017-02-27 20 views
0

首先,我應該澄清一點,我只使用Bizspark訂閱在Azure端使用免費模塊和服務計劃。Azure移動應用程序:無法從我的nodeJS後端發送推送通知

我目前正在試圖運行在下面的教程中的應用:

https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-xamarin-forms-get-started-push

一切工作在客戶端,項正確地發送並存儲在數據庫中。但是,我無法讓NodeJS服務器向設備發送推送通知。 我基本上覆制並粘貼了本教程中關於nodeJS後端教程的代碼,重新部署/重新啓動了服務器,但未發送單個推送通知。

我試圖看看代碼中哪裏出錯了,於是我去了一些logger.info。然後我發現context.push是未定義的。

但是,我確實將移動應用程序連接到Azure移動應用程序菜單中的「推送」類別中的通知中心(它看起來已連接)。

Push page on my mobile app

谷歌雲消息也被正確配置,我獲得了成功註冊的推送通知,當我啓動應用程序。

我錯過了什麼?是因爲我在使用免費計劃(通知中心,數據庫,服務計劃)嗎?

回答

0

首先,您可以測試通過Azure門戶發送通知,爲此,請參閱下面的步驟。

  1. 轉到Azure門戶並導航到您的通知中心。
  2. 點擊測試發送根據支持+故障排除菜單。
  3. 選擇您使用的平臺,然後填寫有效負載信息並點擊發送按鈕。

enter image description here

幾乎立即(但在現實中,它可能是幾分鐘的時間,因爲PNS延遲),你會看到你的應用程序推送通知提醒。

對於Azure移動應用程序上的node.js後端,可以使用以下幾行代碼向所有註冊的客戶端發送推送通知。

var payload = { 
    data: { 
    message: 'Hello!' 
    } 
}; 
notificationHubService.gcm.send(null, payload, function(error){ 
    if(!error){ 
    //notification sent 
    } 
}); 

欲瞭解更多信息,請查看this tutorial

0

我確實嘗試了幾次發送測試,它的工作很完美,因此我無法理解它是如何工作的。我無法使用完全相同的代碼@aaron-chen-msft,因爲我在Azure上使用基本的後端nodeJS服務器(快速入門,因此我需要安裝「azure」npm包),但我添加了以下字符串到我的手機應用程序設置(應用程序設置選項卡)在Azure上:

鍵:MS_NotificationHubName值:MyNotificationHubName(這裏,打個招呼,Forgh)

Context.push當時沒有定義,但通知間沒有」牛逼派,所以我被@亞倫臣MSFT的代碼啓發,我編輯的代碼的NodeJS專門通知發送到GCM:

context.push.gcm.send(null, payload, function (error) { ... } 

它終於工作。謝謝!

相關問題