Tag: 后台获取

iOS开发课程:后台模式(获取)

如何定期从网络下载内容? iOS有哪些背景模式可用? 当用户没有积极使用您的应用程序时,系统会将其移至后台状态。 对于许多应用程序而言,后台状态只是暂停应用程序的短暂停留。 挂起应用程序是延长电池寿命的一种方式,它还允许系统将重要的系统资源投入到引起用户注意的新的前台应用程序中。 需要在后台运行以支持特定类型任务的应用可以声明其对一种或多种后台执行模式的支持。 了解有关Apple Developer的更多信息。 在这里您可以了解所有背景模式。 我们将在该文章中讨论bg提取。 该应用程序会定期从网络下载并处理少量内容。 要支持此模式,请从Xcode项目中“功能”选项卡的“背景模式”部分启用“背景获取”选项。 (您也可以通过在应用程序的Info.plist文件中将UIBackgroundModes值包含UIBackgroundModes键来启用此支持。)启用此模式并不能保证系统会给您的应用程序任何时间执行后台获取。 系统必须在您的应用程序获取内容的需求与其他应用程序以及系统本身的需求之间取得平衡。 在评估了这些信息之后,系统会在有很多机会的时候为应用提供时间。 当有好的机会出现时,系统会在后台唤醒或启动您的应用程序,然后调用应用程序委托的application:performFetchWithCompletionHandler:方法。 创建一个新的Single View App项目。 热键:shift + Command + N 添加后台模式功能 选择项目 开放目标的能力 激活背景模式 检查背景提取 打开AppDelegate.swift文件。 修改文件中的代码。 查看控制台输出。 数据在这里! performFetchWithCompletionHandler结果:可选(“ \ n <html xmlns = \”http://www.w3.org/1999…………。 是的 我们有数据。 有什么用呢? 这是你的选择。 设置申请方案 开放方案设置 打开选项标签 检查背景提取 在模拟器上运行。 是的 现在应用程序尚未启动,并且后台获取模拟已经启动。 你完成了! 拍! 拍! 请记住,成功的秘诀是不断学习和与同事沟通,包括自我教育。 […]

后台抓取

Background Fetch是在iOS7中加入的新功能。开启Background Fetch的App会被系统在合适的时机通知,执行相关的功能。 举例来说:每天早上10点你打开RSS阅读器App来阅读,系统可能会在10点之前执行App内下载RSS的功能,所以一打开App的时候可以显示出最新的内容。 实现Background Fetch的步骤也是非常简单: 步骤1 项目->功能->开启后台模式->插入后台获取 第2步 在application:didFinishLaunchingWithOptions:内部设置获取间隔 设定fetch interval是告知系统我们需要的fetch间隔不会小于这个值,但是系统不保证每隔这个时间间隔都会通知。 这里设置UIApplicationBackgroundFetchIntervalMinimum的意思是告诉系统调用呼叫我们的Fetch功能。 第三步 实作Fetch功能,在ApplicationDelegate中加入: completeHandlerblock可以用的参数有以下三个: UIBackgroundFetchResultNewData >>表示资料拉取OK UIBackgroundFetchResultNoData >>没有新的资料 UIBackgroundFetchResultFailed >>拉取资料失败或逾时 每次执行Background Fetch时都会被呼叫到这个函式,可以在这做资料抓取,更新等。执行完之后都必须呼叫完成Handlerblock,告知系统已经执行完毕。如果要耗时比较长,将来被呼叫到的机会就会减少。 另外要注意的是当当这个函式被呼叫到时,App有30秒的的时间来执行相关操作,然后结束时呼叫完成Handlerblock。如果超过30秒的话,App可能会被系统停掉。 参考 iOS 7 SDK:多任务增强

如何在React Native中使用HealthKit处理后台应用刷新

目录 查询样本数据 HealthKit中的后台传递 后台程序刷新 事件发射器,用于将事件发送到Javascript 本机模块不能为空 React Native中的桥梁是什么? 模拟后台获取事件 EventEmitter的多个实例? 由于后台获取事件而启动 无头JS 未设置网桥 在UI和热重载方面,我很喜欢React Native,但是在React Native中,还有很多简单的事情变得非常困难。 主要是关于处理本机功能和React桥。 这篇文章是关于我的工作,从开始使用iOS的React Native中的Background fetch和HealthKit逐渐了解本机模块。 我正在使用的应用程序具有HealthKit集成,这意味着查询HealthKit数据并积累它们以进行其他研究。 功能之一是定期在后台发送锻炼数据。 可能有一些库可以执行此任务,但是我总是喜欢手动执行,因为React Native包装器应该不会那么重,并且我可以完全控制执行。 本文是关于HealthKit的,但相同的想法也应适用于其他背景需求。 还会有很多React Native源代码拼写,阅读和调试起来有些痛苦,但是最后我们学习了很多事情的实际功能。 在撰写本文时,我使用react-native 0.57.5 用HKHealthStore查询样本数据 关于HealthKit,我们可以通过HKHealthStore轻松查询诸如锻炼和步数之类的样本类型。 HKHealthStore是HealthKit管理的所有数据的访问点,我们可以构造HKQuery和HKSampleQuery来微调查询。 让谓词= HKQuery.predicateForSamples( withStart:startDate, 结束:endDate, 选项:[。strictStartDate,.strictEndDate] ) 让查询= HKSampleQuery( sampleType:HKObjectType.workoutType(), 谓词: 限制:0, sortDescriptors:无, resultsHandler:{查询,样本,错误 防护错误==无其他{ 返回 } 回调(样本) }) store.execute(查询) HealthKit中的后台传递 接下来,通过enableBackgroundDelivery方法进行后台传递 调用此方法以注册您的应用以进行后台更新。 只要将指定类型的新样本保存到商店,HealthKit就会唤醒您的应用程序。 […]