2017-04-06 25 views
0

有沒有辦法控制從設備收到推送通知的時間和頻率?控制從設備收到的通知的頻率

我正在將推送通知從Azure發送到Windows UWP設備。如果溫度達到標籤值或更高,標籤爲0,10,20,30,40,50等,則發送通知。

因此,當temp爲20或高於20的任何設備時,訂閱20的設備將從服務器接收通知

但是,我的問題是,服務器每半小時更新一次,因此如果一次更新的溫度是23,那麼下一次更新總是保持在20以上,用戶不斷收到推送通知。它不會提醒他們任何新東西,只是不斷髮送相同的信息。

我希望用戶能夠爲通知 指定以下設置,因爲每隔半小時接收一次通知就會頻繁出現煩人和打擾用戶的情況。

  • 通知總是(已經這樣做了)

  • 只通知首次到達溫度爲20或更高

    OR 通知我只有一次,每隔2小時

  • 只在這些時間內通知(上午9點 - 下午10點) - 我認爲這很容易做到,因爲我可以退訂通知,我猜測後臺任務,然後訂閱它)

回答

1

我正在將推送通知從Azure發送到Windows UWP設備。如果溫度達到標記值或通知被髮送時,標籤是0,10,20,30,40,50等

正如我已知,可以利用Azure Notification Hubs到推送通知發送到UWP應用程序,並您可以使用Routing and tag expressions在通過通知中心發送通知時將通知推送到特定設備組。但隨着官方教程指出約Tag expressions

標籤表達式可以包含所有的布爾運算符,如AND(& &),OR(||)和NOT(!)。它們也可以包含括號。如果標籤表達式僅包含OR,則限制爲20個標籤;否則它們被限制爲6個標籤。

按我的情況的瞭解,如果溫度是28,那麼你需要支持的代碼進行比較,併發送通知如下:

NotificationHubClient.SendWindowsNativeNotificationAsync("{toast}","(0||10||20)")

是否有辦法控制從設備接收推送通知的時間和頻率?

據我所知,沒有內置功能可以實現這一目的。根據我的理解,您需要使用安裝模型並將設備註冊信息(InstallationId,user tags,LastPushNotificationDateTime等)存儲在數據存儲中,然後篩選尚未收到的有效InstallationIds(設備)的註冊記錄通知,然後用下面的方法將通知發送到特定的安裝(設備)如下:

_hubclient.SendWindowsNativeNotificationAsync("payload", "$InstallationId:{" + installationId + "}");

此外,你可以按照這個官方tutorial有關設備的登記管理與通知中心。此外,還有一個官方blog關於Azure通知中心:管理設備的最佳實踐,您可以參考它。

相關問題