Jam*_*mes 4 ios bluetooth-lowenergy ibeacon
我已经做了很多搜索SO和谷歌试图得到一个答案,但我没有能够把拼图的所有部分放在一起,所以任何帮助/指针都会很棒.
我想构建一个在进入iBeacon区域时检查Web服务的应用程序.简单的示例用例是这样的:
用户在后台走进带有应用程序的iBeacon配备商店
应用程序向Web服务器发出请求以检查用户ID是否为成员(该应用程序已被授予用户向服务器发送用户ID的权限),而不是通知用户.
3A.服务器发回"真实"响应
4A.应用程序发送"我们今天有特别会员促销"通知锁屏.
要么
3B.服务器发回"错误"响应
4B.应用程序保持沉默(不通知用户)
仅供参考,这个答案似乎表明可以在后台发送URL请求:在后台 运行URL请求
你几乎已经确定了你需要做的一切.
调用您CLLocationManagerDelegate的didEnterRegion:方法后,您可以启动后台任务,然后启动网络请求.收到回复后,您可以根据需要发送本地通知,然后结束后台任务.
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
// If not already performing a background task for this region...
UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
}];
// perform network request - if successful, display notification. when finished, end background task
}
Run Code Online (Sandbox Code Playgroud)
虽然我应该注意,我实际上不会将后台任务管理和Web请求代码直接放在我的didEnterRegion:方法中.我有一个单独的Web API类来执行请求,只是从内部调用它didEnterRegion:.
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |