ios – 在后台使用应用程序输入iBeacon区域,并在不通知的情况下请求URL

ios – 在后台使用应用程序输入iBeacon区域,并在不通知的情况下请求URL,第1张

概述我已经做了很多搜索SO和谷歌试图得到一个答案,但我没有能够把拼图的所有部分放在一起,所以任何帮助/指针都会很棒. 我想构建一个在进入iBeacon区域时检查Web服务的应用程序.简单的示例用例是这样的: >用户在后台进入带有app的iBeacon配备商店 >而不是通知用户,应用程序向Web服务器发出请求以检查用户ID是否是成员(该应用程序已被授予用户向服务器发送用户ID的权限). 3A.服务器发回 @H_419_6@ 我已经做了很多搜索SO和谷歌试图得到一个答案,但我没有能够把拼图的所有部分放在一起,所以任何帮助/指针都会很棒.

我想构建一个在进入iBeacon区域时检查Web服务的应用程序.简单的示例用例是这样的:

>用户在后台进入带有app的iBeacon配备商店
>而不是通知用户,应用程序向Web服务器发出请求以检查用户ID是否是成员(该应用程序已被授予用户向服务器发送用户ID的权限).

3A.服务器发回“真实”响应

4A.应用程序发送“我们今天有特别会员促销”通知锁屏.

要么

3B.服务器发回“错误”响应

4B.应用程序保持沉默(不通知用户)

仅供参考,这个答案似乎表明可以在后台发送URL请求:
Running URL Requests in the Background

解决方法 你几乎已经确定了你需要做的一切.

调用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}

虽然我应该注意到我实际上不会将后台任务管理和Web请求代码直接放在我的dIDEnterRegion:方法中.我有一个单独的Web API类来执行请求,只是从dIDEnterRegion中调用它:

总结

以上是内存溢出为你收集整理的ios – 在后台使用应用程序输入iBeacon区域,并在不通知的情况下请求URL全部内容,希望文章能够帮你解决ios – 在后台使用应用程序输入iBeacon区域,并在不通知的情况下请求URL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1054796.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存