Language: HTML | XAML

在前景處理地理柵欄通知 (HTML)

本主題將逐步引導您完成在應用程式的前景處理 Geofence 通知的步驟。

藍圖: 這個主題與其他主題的相關性?請參閱:

簡介

一旦建立您的地理柵欄之後,就必須加入邏輯,以處理發生地理柵欄事件時所發生的情況。 根據您已經設定的 MonitoredStates,您可能會在下列情況下收到某個事件:

  • 使用者進入相關的區域時。
  • 使用者離開相關的區域時。
  • 地理柵欄過期或遭到移除時。請注意,系統不會啟動移除事件的背景應用程式。

您可以在應用程式執行時,直接從應用程式接聽事件,或登錄背景工作,讓您可以在事件發生時,收到背景通知。如需有關背景工作和地理柵欄的詳細資訊,請參閱在背景接聽地理柵欄事件從背景工作處理地理柵欄通知,以及地理柵欄的指導方針

登錄地理柵欄狀態變更事件

若要讓您的應用程式收到地理柵欄狀態變更的前景通知,您必須登錄事件處理常式。 這通常會在建立地理柵欄時設定。


    function initialize() {

    // other initialization logic

    Windows.Devices.Geolocation.Geofencing.GeofenceMonitor.current.addEventListener("geofencestatechanged", onGeofenceStateChanged);
}



實作地理柵欄事件處理常式

下一步是實作事件處理常式。 此處所採取的動作將取決於您的應用程式使用地理柵欄的用途。


public async void OnGeofenceStateChanged(GeofenceMonitor sender, object e)
{
    var reports = sender.ReadReports();

    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        foreach (GeofenceStateChangeReport report in reports)
        {
            GeofenceState state = report.NewState;

            Geofence geofence = report.Geofence;

            if (state == GeofenceState.Removed)
            {
                // remove the geofence from the geofences collection
                GeofenceMonitor.Current.Geofences.Remove(geofence);
            }
            else if (state == GeofenceState.Entered)
            {
                // Your app takes action based on the entered event

                // NOTE: You might want to write your app to take particular
                // action based on whether the app has internet connectivity.

            }
            else if (state == GeofenceState.Exited)
            {
                // Your app takes action based on the exited event

                // NOTE: You might want to write your app to take particular
                // action based on whether the app has internet connectivity.

            }
        }
    });
}





相關主題

藍圖
使用 JavaScript 建立應用程式的藍圖
設計應用程式的 UX
工作
設定地理柵欄
在背景接聽地理柵欄事件
從背景工作處理地理柵欄通知
參考
Geoshape
Geofence
Geolocator
其他資源
Windows 10 Technical Preview 地理位置範例
Windows 8.1 地理位置範例
地理柵欄的指導方針

 

 

顯示:
© 2015 Microsoft