V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ningcool
V2EX  ›  程序员

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

  •  
  •   ningcool · 2017-02-17 18:08:21 +08:00 · 3902 次点击
    这是一个创建于 2870 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,问题是:如果我想取消这次的 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 通知啊!如是问。

    8 条回复    2017-02-18 10:12:13 +08:00
    martint028
        1
    martint028  
       2017-02-17 18:36:13 +08:00
    目测控制不了
    ningcool
        2
    ningcool  
    OP
       2017-02-17 18:37:55 +08:00
    @martint028 好像是无法控制。
    sea516
        3
    sea516  
       2017-02-17 18:51:02 +08:00
    说明服务器的同事不行 就这么简单
    onevcat
        4
    onevcat  
       2017-02-17 18:51:51 +08:00 via iPhone   ❤️ 1
    用静默通知在后台唤醒,按需求 schedule 一个本地通知弹出来…
    paradoxs
        5
    paradoxs  
       2017-02-17 18:56:47 +08:00 via iPhone
    服务器发送之前用 deviceToken 区分用户啊
    ningcool
        6
    ningcool  
    OP
       2017-02-17 19:03:07 +08:00
    @paradoxs 每次推送都是针对不同用户的,因为通知是根据不同用户的家庭安防设备报警所发的。但是有的报警是不必要发的,比如人在家里,大白天,设备检测到是家庭成员,这个行为监测就不应该发报警通知。如果放在服务器有的逻辑不好控制,比如需要判断用户 Wi-Fi 的 SSIS 名称是否和设备链接的 Wi-Fi 一样,一样说明在家里,那么就不推送。而这个逻辑难以在服务器部署,所以放到客户端去做。
    xiaogui
        7
    xiaogui  
       2017-02-17 23:39:19 +08:00
    @ningcool 个人建议将需要推送的信息进行分类,对推送情况进行区分。比如:推送的频率、权重、推送发起的位置(服务器、客户端)。
    zwl2012
        8
    zwl2012  
       2017-02-18 10:12:13 +08:00 via iPhone
    这后端也太懒了吧😄,如你所说的判断是否在家的问题。服务端两个字段的问题,逻辑部署在 app 端,变更通知逻辑不就得需要升级 APP 。感觉就像 bs 架构退步成 cs 架构了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:55 · PVG 13:55 · LAX 21:55 · JFK 00:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.