语言: HTML | XAML

快速入门:处理前台的地理围栏通知 (HTML)

Applies to Windows and Windows Phone

本主题将指导你在使用 JavaScript 的 Windows 运行时应用中逐步处理前台的 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 的 Windows 运行时应用的路线图
设计应用 UX
任务
快速入门:设置一个地理围栏
快速入门:侦听后台的地理围栏事件
快速入门:处理来自后台任务的地理围栏通知
参考
Geoshape
Geofence
Geolocator
其他资源
地理围栏指南

 

 

显示:
© 2014 Microsoft