- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里遇到了一个小问题,因为我试图在用户返回应用程序时(在后台时)在我的 WKWebView
中运行一些 javascript 代码。
所以,基本上,有两种可能性:
用户从后台进入应用程序(多任务,无论什么)。这里发生的是,在 applicationWillResignActive
上,我保存了一个 var App.resignTime = NSDate().timeIntervalSince1970
,我检查了当前的 NSDate().timeIntervalSince1970
在 applicationWillEnterForeground
上。因此,如果差异大于 25 秒(你知道 iOS 会在 30 秒后停止应用程序使用内存,因此断开 WKWebView
与我的套接字服务器的连接,无法接收新消息。所以,如果是这样,我运行一些 JS 代码,以获取新消息。
当didReceiveRemoteNotification
方法执行时,UIApplicationState
为.Inactive
或.Background
,这意味着用户通过推送通知从后台状态“打开”了应用程序,我运行的代码几乎相同,但还添加了一些东西(因为我也想打开那个对话室,而不是只刷新所有对话)。
现在的问题是 applicationWillBecomeActive
在这两种情况下都在运行,我想在用户从推送通知打开应用程序时跳过它。因为我最终有两个异步请求冲突。
我会保存一个变量,说明用户从推送通知打开,跳过 applicationWillBecomeActive
但 applicationWillBecomeActive
在 didReceiveRemoteNotification
之前运行,所以我真的不能这样跳过它。
我不知道我是否解释正确..但希望我做到了。一定要问,我会尝试进一步解释。
最佳答案
这里有几种可能性:
1) 如果在 applicationWillBecomeActive
中开始的请求与在 didReceiveRemoteNotification
中开始的请求相同 - 为什么要在 didReceiveRemoteNotification
中发送它?或者:检查didReceiveRemoteNotification
请求是否已经完成,然后不再执行。
2) 不要在 applicationWillBecomeActive
中发送有问题的请求,而是在稍后的状态下(当你知道你是否来自推送通知时,例如在 View Controller 中,在计时器中你在 applicationWillBecomeActive
中开始,或者可能在 applicationDidFinishLaunchingWithOptions
中开始)
3) 查看在两种情况下做同样的事情会产生什么影响 - 它发生的频率、产生的数据负载量以及用户体验如何。如果答案不经常、不多并且用户不会注意到,则执行相同的操作。
关于ios - 使用 didReceiveRemoteNotification 打开时如何跳过 applicationWillBecomeActive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34020569/
我在这里遇到了一个小问题,因为我试图在用户返回应用程序时(在后台时)在我的 WKWebView 中运行一些 javascript 代码。 所以,基本上,有两种可能性: 用户从后台进入应用程序(多任务,
我是一名优秀的程序员,十分优秀!