Ios 只有UNLocationNotificationTrigger未被触发

Ios 只有UNLocationNotificationTrigger未被触发,ios,objective-c,unusernotificationcenter,Ios,Objective C,Unusernotificationcenter,我试图在用户进入某个区域时获得通知,但我没有收到任何位置通知 我只是使用苹果文档页面上提供的示例代码来解锁NotificationTrigger。问题是,该代码对除此之外的所有其他触发器都非常有效。我的应用程序具有位置权限-我可以轻松地从CLLocationManager获取位置。我甚至修改了我的代码,为locationManager注册了一个代理,并且didEnterRegion和didExitRegion工作得很好,但是位置通知没有发出 这是注册位置通知的代码: CLLocationCoor

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

我只是使用苹果文档页面上提供的示例代码来解锁NotificationTrigger。问题是,该代码对除此之外的所有其他触发器都非常有效。我的应用程序具有位置权限-我可以轻松地从CLLocationManager获取位置。我甚至修改了我的代码,为locationManager注册了一个代理,并且didEnterRegion和didExitRegion工作得很好,但是位置通知没有发出

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

CLLocationCoordinate2D点=CLLocationCoordinate2DMake37.335400,-122.009201; CLCircularRegion*区域=[[CLCircularRegion alloc]initWithCenter:点 半径:2000.0标识符:@总部]; region.notifyOnEntry=是; region.notifyOnExit=否; UNLocationNotificationTrigger*触发器=[UNLocationNotificationTrigger] triggerWithRegion:区域重复:是]; UNNotificationRequest*请求=[UNNotificationRequest] requestWithIdentifier:[details.id stringValue]内容:内容触发器:触发器]; UNUserNotificationCenter*中心=[UNUserNotificationCenter currentNotificationCenter]; [center addNotificationRequest:带有CompletionHandler的请求:^n错误*\u可为空的错误{ 如果错误!=nil{ NSLog@Unable添加通知请求; } }]; 当我检索挂起的通知时,它甚至显示:

<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委托时,我可以让同一个区域触发进入和退出事件,但通知永远不会触发。你知道我哪里做错了吗?

如果一切都按它应该的方式设置好了,那么当从模拟器的“调试”菜单触发位置更改时,你应该能够看到它

突出显示模拟器窗口,从调试菜单中选择位置>自定义位置,并输入应触发通知的区域的坐标


您可以在下面的文章中找到更多信息-

好的,没关系,很明显是模拟器运行了2天。今天,在完全没有代码更改的情况下,它工作得非常完美。

我遇到了同样的问题。我从模拟器中删除了该应用程序,退出了模拟器,清理了Xcode Shift+Command+中的build文件夹,然后重新运行该应用程序,然后它就开始工作了。

是的,我就是这样更改位置的-不起作用。但是,当我注册locationManager委托并以传统方式创建地理围栏时,它确实会这样做,因此问题似乎出现在通知中心。我明白了。触发通知时,设备的位置是否设置为超出触发区域?是。当我注册通知时,我已经在欧洲的某个随机位置,然后我将我的位置设置为苹果总部。locationManager的geofence会触发didEnterRegion功能,但不会显示通知。尝试在内部、退出和重新进入时进行设置:同样,locationManager委托会注册这两个事件,但不会显示通知。是的,它正在前台运行。但无论我的应用程序是否运行Edit,所有其他通知都会触发:澄清一下,我说的是UNUserNotifications,在我的代码中,我强迫它们甚至在前台显示。根据Sam的回答和链接的博客文章,它在模拟器中应该可以正常工作……这与我的经验相符。触发通知的iOS项目刚刚停止使用相同的项目和相同的代码。还没能让它重新启动。