地理围栏功能描述:
应用程序在进入或退出该区域时有两种类型的功能:
>重置围栏:
如果用户将进入该区域并且该区域具有重置围栏的功能,则app将调用一个Web服务并获取新的围栏列表.此功能也应该在后台模式下工作.
> App Open:
如果用户将进入该区域并且该区域具有app_open的功能,那么app将会
*a. Show alert,if the app is in foreground mode* *b. Show notification,if the app is in background mode*
我已经使用区域监控来实现此功能,并且也不希望使用显着的位置更改,因为应用程序设置了大约100到200米半径的围栏.
现在我的问题是,
>我应该使用后台模式“App register for location updates”来监控区域交叉
>我使用下面的代码在后台模式中调用’reset fence’的web服务.
– (voID)beginBackgroundUpdateTask
{
self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^ {
[self endBackgroundUpdateTask];
}];
}
– (voID)endBackgroundUpdateTask
{
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask];
self.backgroundUpdateTask = uibackgroundtaskInvalID;
}
因此,我应该在[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandle中应用info.pList中的任何设置.
请进一步指导我.我在互联网上搜索过很多但仍未找到上述两个问题的具体答案.
注意:由于后台模式“位置更新”,苹果已拒绝该应用.请建议我苹果不会拒绝该应用程序的方式.
以下是原因.
2.16:多任务应用程序只能将后台服务用于其预期目的:VoIP,音频播放,位置,任务完成,本地通知等.—– 2.16 —–
我们发现您的应用使用后台模式,但不包含要求该模式持续运行的功能.此行为不符合App Store审查指南.
我们注意到您的应用程序在Info.pList中的uibackgroundmodes键中声明了对位置的支持,但不包括需要持久位置的功能.
在应用程序处于后台时添加需要持续使用实时位置更新的功能或从uibackgroundmodes键中删除“位置”设置是合适的.如果您的应用程序不需要持久的实时位置更新,我们建议您使用重要更改位置服务或区域监控位置服务.
非常感谢提前.
解决方法 我们的应用程序因同样原因被拒绝.如果您所做的只是区域监控,则不需要位置更新后台模式.我们将其关闭,我们的区域监控工作正常.即使应用程序未运行,它也会在用户进入该区域时由iOS启动.我们重新提交了应用程序并获得批准. 总结以上是内存溢出为你收集整理的Geofence iOS8:需要iOS Geofencing的后台模式全部内容,希望文章能够帮你解决Geofence iOS8:需要iOS Geofencing的后台模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)