在iPhone正在睡觉时,快速检测iBeacons

时间:2015-06-08 07:10:20

标签: ios swift location ibeacon

我有一个可以判断iBeacon是否在范围内的应用程序,是否有人知道如果iBeacon在推送通知的范围内,即使手机正在睡眠,我也可以通知用户?

编辑:我的问题与this question不同,因为我不知道如何生成推送通知。当应用程序处于非活动状态时,所有这一切都要少得多。

1 个答案:

答案 0 :(得分:0)

通常,信标应用使用本地通知而非远程通知,以便在附近有信标时提醒用户。两者对最终用户看起来都是一样的,但是从手机上运行的代码启动本地通知,并且从服务器推送远程通知。您可以在此处阅读有关差异的信息:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction.html

您可以发送didEnterRegion回调中的本地通知,如下所示:

UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody = @"I see a beacon";
    [[UIApplication sharedApplication] presentLocalNotificationNow:notification];

您还需要请求以didFinishLaunchingWithOptions方法发送本地通知的权限:

if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]) {
  [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeSound categories:nil]];
}