在 iOS 上为远程推送通知的通知操作调用 Web 服务
Posted
技术标签:
【中文标题】在 iOS 上为远程推送通知的通知操作调用 Web 服务【英文标题】:Calling web service for the notification action for a remote push notification on iOS 【发布时间】:2017-12-05 18:16:20 【问题描述】:当用户单击交互式通知上的按钮时,我需要调用 2 个 Web 服务调用。此通知是远程推送通知。当应用程序处于前台或后台时,Web 服务调用工作正常。但是当应用程序处于挂起状态(用户强行终止应用程序)时,行为并不一致。有时它运行良好,即同时调用 Web 服务调用。有时它会失败,我在日志中看到的最常见原因是
通知响应动作的应用程序后台启动动作 vscd.escalate 收到动作响应 description = "操作无法完成。(BSActionErrorDomain 错误 4.)"; >
我只在功能下启用了“远程通知”。 “后台提取”未启用。
感谢任何帮助。
【问题讨论】:
我发现我什至在执行 Web 服务请求之前就调用了 completionHandler,这就是服务调用失败的原因。 【参考方案1】:当我没有在应用启动时正确注册通知委托时,我发生了这种情况 - 就像他们在文档中警告的那样。解决方法是确保在 didFinishLaunchingWithOptions
期间明确设置委托。
以前,我的应用在加载初始视图控制器期间设置了委托,这适用于所有情况,除非应用不在前台或后台运行,而是由通知本身启动。
【讨论】:
以上是关于在 iOS 上为远程推送通知的通知操作调用 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章
在 Xamarin iOS 中的远程通知的“默认用户操作”上推送视图控制器
iOS 推送通知 - didReceiveRemoteNotification:fetchCompletionHandler: 从未在前台调用