关于这个主题有很多stackoverflow线程,但我仍然没有找到一个好的解决方案.
如果应用程序不在后台,我可以launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]
通过application:didFinishLaunchingWithOptions:
电话查看它是否从通知中打开.
如果应用程序在后台,则所有帖子都建议使用application:didReceiveRemoteNotification:
并检查应用程序状态.但是当我进行实验时(以及此API的名称建议),此方法在收到通知时被调用,而不是被点击.
所以问题是,如果应用程序启动然后背景化,并且您知道收到通知application:didReceiveNotification
(此时application:didFinishLaunchWithOptions:
不会触发),您如何知道用户是通过点击通知还是仅通过点击来恢复应用程序应用图标?因为如果用户点击了通知,则期望打开该通知中提到的页面.否则它不应该.
我可以handleActionWithIdentifier
用于自定义操作通知,但这仅在轻触自定义操作按钮时触发,而不是在用户点击通知主体时触发.
谢谢.
编辑:
在阅读下面的一个答案之后,我想通过这种方式我可以澄清我的问题:
我们如何区分这两种情况:
(A)1.app转到后台; 2.收到通知; 3.用户点击通知; 4. app进入前台
(B)1.app转到后台; 2.收到通知; 3.用户忽略通知并稍后点击应用程序图标; 4. app进入前台
因为application:didReceiveRemoteNotification:
在步骤2中两种情况都被触发.
或者,应application:didReceiveRemoteNotification:
仅在步骤3中针对(A)触发,但我以某种方式将我的应用程序配置错误,所以我在第2步看到它?
我们如何调试设置到后端服务器的请求?
我希望能够准确地看到或打印出带有标头参数等的完整请求......每当我提出任何请求时,这些请求都会被发送到服务器 Moya