前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使iOS后台运行代码

如何使iOS后台运行代码

作者头像
用户6094182
发布2019-08-23 17:48:34
1.7K0
发布2019-08-23 17:48:34
举报
文章被收录于专栏:joealzhoujoealzhou

如何使iOS后台运行代码

需求

最近在开发一个关于校园的项目,其中有这么一个需求:学生晚上8:00第一次打完卡后在当天夜晚11:00时需要再一次上传学生当前地理位置,判断是否还在宿舍(MMP防不胜防)。但是最后一次上传是不需要学生操作的,APP默默的执行。

mmp

注意:以下所有方法都只考虑APP没有被杀死,仅是在后台或者锁屏状态下。

iOS系统有这么一个机制:退到后台的APP可以有3分钟或者10分钟继续执行代码。如果想更长的时间允许你的代码,可以使用地理位置、后台播放无声音乐、VoIP。参考此链接iOS保持App真后台运行

地理位置刷新保持APP代码运行

当退到后台时开启地理位置刷新,每隔一段时间可以运行一下代码,然后又马上被挂起。所以整个过程是断断续续的,并且长时间保持APP后台地理位置刷新非常费电,用户估计会不允许。

后台播放无声音乐

这个可以让APP在后台处于运行状态,执行你想要的操作。但是这个有很大风险被拒。

静默推送

最后针对我们项目需求:在某个时间点如果APP没被主动杀死的情况下,发送静默推送唤醒APP执行上传地理位置操作。可以完美的解决。静默推送相关知识

代码语言:javascript
复制
    {
    "aps": {
        "content-available": 1,
        //"alert": "Test",
        //"badge": 1,
        //"sound": "default",
    }
    // 以下是自定义键值对
}

发送静默推送必须满足设置content-available: 1,alert、badge、sound这些值为空。

APP端:在application:didReceiveRemoteNotification:fetchCompletionHandler:方法中监听所接收到的静默推送。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使iOS后台运行代码
    • 需求
      • 地理位置刷新保持APP代码运行
    • 后台播放无声音乐
      • 静默推送
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档