iOS 10 新出了 NotificationExtend,可以拦截 APNS 通知,中途修改后展现给用户。那么问题来了。。。

2017-02-17 18:08:21 +08:00
 ningcool

如题,问题是:如果我想取消这次的 APNS 推送,应该如何处理?

我在程序里各种设置 body , title ,等为空字符,依然不行,通知照常弹出。

self.contentHandler = contentHandler;
self.bestAttemptContent = [request.content mutableCopy];

self.bestAttemptContent.title = @"";
//[NSString stringWithFormat:@"%@", self.bestAttemptContent.title];
self.bestAttemptContent.body = @"";
self.bestAttemptContent.subtitle = @"";
self.bestAttemptContent.userInfo = [[NSDictionary alloc] init];

各位大牛是否有解决方案?

至于,为什么会有这样的奇葩需求,是因为我们的客户端是安防类的,服务器推送的太多了,而如果服务器修改,那么智能安防设备的固件端也得修改,为了成本考虑,放在端上解决了。目前无法解决拦截取消 APNS 通知啊!如是问。

3896 次点击
所在节点    程序员
8 条回复
martint028
2017-02-17 18:36:13 +08:00
目测控制不了
ningcool
2017-02-17 18:37:55 +08:00
@martint028 好像是无法控制。
sea516
2017-02-17 18:51:02 +08:00
说明服务器的同事不行 就这么简单
onevcat
2017-02-17 18:51:51 +08:00
用静默通知在后台唤醒,按需求 schedule 一个本地通知弹出来…
paradoxs
2017-02-17 18:56:47 +08:00
服务器发送之前用 deviceToken 区分用户啊
ningcool
2017-02-17 19:03:07 +08:00
@paradoxs 每次推送都是针对不同用户的,因为通知是根据不同用户的家庭安防设备报警所发的。但是有的报警是不必要发的,比如人在家里,大白天,设备检测到是家庭成员,这个行为监测就不应该发报警通知。如果放在服务器有的逻辑不好控制,比如需要判断用户 Wi-Fi 的 SSIS 名称是否和设备链接的 Wi-Fi 一样,一样说明在家里,那么就不推送。而这个逻辑难以在服务器部署,所以放到客户端去做。
xiaogui
2017-02-17 23:39:19 +08:00
@ningcool 个人建议将需要推送的信息进行分类,对推送情况进行区分。比如:推送的频率、权重、推送发起的位置(服务器、客户端)。
zwl2012
2017-02-18 10:12:13 +08:00
这后端也太懒了吧😄,如你所说的判断是否在家的问题。服务端两个字段的问题,逻辑部署在 app 端,变更通知逻辑不就得需要升级 APP 。感觉就像 bs 架构退步成 cs 架构了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX