只有 UNLocationNotificationTrigger 没有被触发

Only UNLocationNotificationTrigger isn't triggered

我正尝试在用户进入某个区域时收到通知,但我没有收到任何位置通知。

我只是使用 Apple 文档页面上为 UNLocationNotificationTrigger 提供的示例代码。问题是,代码对除此之外的所有其他触发器都完美工作。我的应用程序具有位置权限 - 我可以轻松地从 CLLocationManager 获取位置。我什至修改了我的代码,也为 locationManager 注册了一个委托,didEnterRegiondidExitRegion 工作完美,但位置通知不会触发。

这是注册位置通知的代码:

CLLocationCoordinate2D point = CLLocationCoordinate2DMake(37.335400, -122.009201);

CLCircularRegion* region = [[CLCircularRegion alloc] initWithCenter:point
        radius:2000.0 identifier:@"Headquarters"];
region.notifyOnEntry = YES;
region.notifyOnExit = NO;

UNLocationNotificationTrigger* trigger = [UNLocationNotificationTrigger
        triggerWithRegion:region repeats:YES];
UNNotificationRequest *request = [UNNotificationRequest 
        requestWithIdentifier:[details.id stringValue] content:content trigger:trigger];
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
    if (error != nil) {
        NSLog(@"Unable to Add Notification Request");
    }
}];

当我检索待处理通知时,它甚至显示:

<UNNotificationRequest: 0x6000024525b0; identifier: 20, content: <UNNotificationContent: 0x60000113fdc0; title: <redacted>, subtitle: (null), body: <redacted>, summaryArgument: , summaryArgumentCount: 0, categoryIdentifier: location, launchImageName: , threadIdentifier: , attachments: (
), badge: (null), sound: <UNNotificationSound: 0x60000010d570>, realert: 0, trigger: <UNLocationNotificationTrigger: 0x600002a4e980; repeats: YES, region: CLCircularRegion (identifier:'Headquarters', center:<+37.33540000,-122.00920100>, radius:2000.00m)>>

我使用 iOS 13.2 模拟器,当我注册 locationManager 委托时,我可以获得相同的区域来触发进入和退出事件,但通知永远不会触发。有什么我可能做错事的想法吗?

如果一切都按预期设置,您应该能够在从模拟器的调试菜单触发位置更改时看到它。

突出显示模拟器的 window 并从 Debug 菜单中,select Location > Custom Location 并输入应该触发通知的区域的坐标。

您可以在以下文章中找到更多信息 - https://medium.com/@jonathan2457/location-triggered-notifications-on-ios-24033919fb9a

好吧,没关系,显然是模拟器故障了 2 天。今天,完全没有代码更改,它运行完美。

我 运行 遇到了同样的问题。我从模拟器中删除了应用程序,退出模拟器,清理了 Xcode (Shift+Command+K) 中的构建文件夹,然后重新 运行 应用程序,之后它就可以工作了。