需要帮助如何检查基于区域的UILocalNotification是否被触发

时间:2016-03-02 08:13:57

标签: ios objective-c uilocalnotification appdelegate clregion

我正在试图弄清楚如何检查基于区域的UILocalNotification是否被触发。我搜索并找到了这个Remove fired Location-Based notification when user exits region,但它对我没用。

我已经配置了一个基于UILocalNotification的区域,当用户进入该特定区域时会触发该区域,而当应用关闭时,UILocalNotification将会启动。

现在,当用户打开应用时,我可以检查基于UILocalNotification的区域是否已开启。

2 个答案:

答案 0 :(得分:0)

代码段:

    -(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification

    {

        NSString *regionIdentifier = [notification.userInfo objectForKey:@"regionIdentifier”];

        [self removeExistingNotificationWithIdentifier: regionIdentifier];

     }



    -(void)removeExistingNotificationWithIdentifier:(NSString*)regionIdentifier
    {
        NSArray *scheduledNotifications = [[UIApplication sharedApplication]scheduledLocalNotifications];
        for (UILocalNotification *notification in scheduledNotifications)
        {
            NSDictionary *userInfoDict = notification.userInfo;
            if ([[userInfoDict objectForKey:@"regionIdentifier"] isEqualToString:regionIdentifier])
            {
                [[UIApplication sharedApplication]cancelLocalNotification:notification];
            }
        }
    }

答案 1 :(得分:-1)

使用gpx文件检查基于地区的通知。

示例:创建一个包含lat的文件Location.gpx,其中包含您希望触发通知的位置。以下代码包含lat,两个位置的长度。

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode">
    <wpt lat="28.53191" lon="77.38311">
        <name>Google</name>
    </wpt>
    <wpt lat="28.50848" lon="77.40825">
        <name>Apple</name>
    </wpt>
</gpx>

调试时,选择Location.gpx文件,如下图所示:

enter image description here