Pav*_*van 2 objective-c push-notification apple-push-notifications ios ios7
设置:我已在我的服务器上成功部署了推送通知系统!话虽这么说,我能够向我的iOS设备发送通知,这些通知可以在网络服务器上发生某些事情时发送警报消息,例如:将新客户添加到系统时.
这会显示一条很好的消息
你有一个新客户.宝贝多钱!
当我的应用程序打开时,通知当然是静默的,但只是为我自动更新customers表,所以我不必手动保持刷新我的表.
问题:从那时起,系统已经扩大规模,现在我每小时至少有几个小时都会收到这样的消息,这让我感到困扰.
我建议的解决方案是每次添加一个新用户时只更新我的表,这样就需要为每个创建的新用户发送推送通知,这很完美,但是它不能在我的通知中心上显示消息它之前做过.
问题:有没有办法静默发送推送通知,这样我就不会在我的设备上收到任何类似的消息,但是当应用程序运行时,推送通知仍会弹出,这样我就可以更新UI而不必手动刷新我的客户表?它只是留下从我的服务器发送的json推送通知的空白主体参数的情况?
我不想要的:我不想解决必须隐藏我自己的应用程序的通知:')
您可以使用iOS 7+的静音推送通知.
如果进入从服务器发送的有效负载,则添加值为"content-available"的值为1并删除密钥"alert",您将获得推送但没有在屏幕上显示消息.
当您收到此类推送时,您将有30秒的执行时间*,时间足以刷新您的用户表,下次打开应用程序时,您将拥有最新的表数据.
系统将唤醒您的应用并调用该方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler
Run Code Online (Sandbox Code Playgroud)
在AppDelegate.m上
格式有效负载应该是:
{"aps":{"content-available":1}}
Run Code Online (Sandbox Code Playgroud)
你也可以添加更多的字段,如果你想要使用徽章或额外的字典数据,是选项.
{"aps":{"content-available":1, "sound":"", "badge":1}}
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你没有得到推动尝试添加"声音":"",似乎可能是一个无声推动周围的错误.
*不要忘记,如果您或使用者向上滑动应用程序并终止应用程序,则不会因静音推送而导致执行时间.
我希望这对你有用!:)