热门搜索 :
考研考公
您的当前位置:首页正文

静默推送之个推iOS版

来源:东饰资讯网

因为公司业务关系,希望在iOS在后台的时候能存活去做某些业务操作(其实就是流氓的后台保活=。=)
最早是使用后台定位实现的,信心满满的去上架,结果被苹果爸爸锤的头都破了。连续被拒3次,申请打电话苹果代表也锤了我一顿,申请苹果审核申诉又被锤了一顿。想一想我真是头铁啊emmm
闲话不多说,开始这篇博客的主题
我们的业务其实很简单,就是后台有业务数据来了,客户端哪怕在后台也要处理。

苹果的保活无非三种方式

1.后台播放无声音乐

2.后台定位

3.推送唤醒

播放音乐

直接被我pass了,我觉得机审都会把我拒了。。。压根不考虑

后台定位

正好我们的业务吐过硬扯还能和业务办公场所扯上关系,头铁就是上!通过后台定位让app保活,成功实现了。不过被🍎爸爸锤了。方案二,pass

推送唤醒

那这时候,就剩这最后一种方式了。
推送分两种,本地推送和远程推送。

本地推送

本地推送其实类似于一个定时器,到了触发的时候就会触发。一般有很多用来做闹钟或者提示用户签到一类的场景。不过根据我的测试,当应用在后台三分钟后,被挂起以后这个本地推送就不再继续推送了。(也不知道是不是我的测试问题,反正我是没能保活成功。)

静默推送(不用voip,有的个推运营人员是非技术,回答让你搞voip,别被忽悠了)

{
    "aps": {
        "content-available": 1,
        "sound": "com.gexin.ios.silence"
    }
}

这个东西,不过万一有没搜到的呢emmm我还是再说一遍
content-available属性。0是非静默,1是静默
个推中,无声,sound属性:com.gexin.ios.silence(其他的推送是不是如此我就不太清楚了)

alert,body切记不要写东西,要传值往最后看

接下来是傻瓜式教程

准备工作

1.推送证书准备好

这部分太多教程了,随便搜一个搞一下就差不多了,不上图了。记得导出的p12要放到个推平台哟。

2.打开开关

推送开关 允许后台推送

3.代码部分

静默推送回调

就在这个里面了,当被挂起的时候,收到推送,执行这里的代码,唤醒app30s左右的时间,让你尽情的做自己想做的事😝。
我把生命周期写在下面,也好复制粘贴去搜索,我是不是很体贴=。=

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler

接下来怎么处理就是你们自己去做业务处理了~

如何不要后台配合自行测试?

打开个推官网

创建推送 图1
图2

然后推就完事了~~~~

这时候你应该能确定是可行的了。
接下来就更简单了,让后台加入联调。

如果后台是java

简单:

payload.setContentAvailable(1);
payload.setSound("com.gexin.ios.silence");

如果你还想传值,有自定义设置key-value方法

payload.addCustomMsg("key","value");

就完事了。
祝各位老哥顺利完成需求,不用砍死产品经理~

Top