2017-01-23 56 views
0

我想爲使用Azure SQL數據庫連接到Azure應用服務的UWP移動應用啓用推送通知。通知只會警告位於距某個地理座標x公里內的用戶。用戶如何跟蹤基於位置的推送通知?

但是我不清楚如何跟蹤用戶,我的問題如下,

在我的數據庫,我應該存儲了使用的應用程序,並定期更新其位置每個用戶?我猜我需要這樣做,以便計算哪些在範圍內,並只發送通知給那些人。然而,這導致我到我的下一個問題,

如果我要爲我的數據庫中的每個用戶存儲記錄,他們使用什麼標識符?用戶如何在每臺設備上識別?他們是否需要使用Facebook,Twitter等授權提供商登錄才能讓我的應用程序記錄唯一標識符?還是有不同的機制來創建或獲取唯一標識符?

回答

0

沒有什麼可以跟蹤推送通知中用戶的位置。有兩件事你可以做:

解決方案1: - 使用觸發後臺任務的地理圍欄。如果進入推送通知的地理柵欄註冊。如果離開地理圍欄在您的後端再次取消訂閱。

解決方案2: - 只發送原始通知並使用後臺任務來處理它們。在後臺任務中,當前位置將被忽略,如果在正確的位置觸發代碼通知。

1

@DaveSmits是在正確的方向。您可以註冊一個GeofenceBackgroundtask以向Azure服務報告用戶的位置。除了當前的位置,您還需要將當前的設備通道Uri報告給您的zaure設備。

我相信你很熟悉WNS。如果沒有,請檢查該文件,它會解釋你的頻道Uri。

然後在您的天藍色服務中,您需要將位置和通道Uri保存在某些數據庫表中。您需要計算距某個地理座標的距離。如果符合要求,您可以獲得所有合格的渠道Uris(例如select channelUri from yourtable where location='xxxxx'

獲得所有渠道Uris後,您可以使用它向特定用戶發送通知。關於如何發送通知,請檢查WNS文件。

我已經回答了MSDN上的類似問題,它還需要向特定用戶發送通知。

+0

通過後臺任務拉出設備位置,甚至可能嗎?因爲我試圖這樣做,但窗口不允許後臺任務發送位置數據。更多關於此:https://msdn.microsoft.com/en-us/windows/uwp/maps-and-location/guidelines-and-checklist-for-detecting-location它明確指出應用程序必須在前臺 –

+0

什麼關於這種情況 - 一個天氣應用程序,要求用戶登錄並設置他們的主頁位置。然後根據保存的家庭地點(不是當前位置)發送通知。如何將Uri頻道與個人用戶(而不是設備)相關聯 - 例如根據用戶表獲得基於家庭位置的用戶,然後僅根據用戶的頻道Uri發送通知。 – erotavlas

+0

@erotavlas如果'home location'由用戶設置。您可能需要考慮[將地址轉換爲地理位置](https://msdn.microsoft。com/en-us/windows/uwp/maps-and-location/geocoding),然後您可以將座標信息發佈到您的天藍色服務。關於'如何將Uri頻道連接到個人用戶(不是設備)',我應該在我上面的回覆中解釋過,Uri頻道對每個設備都是唯一的。請閱讀[WNS](https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-windows-push-notification-services--wns--overview)更仔細。 –

相關問題