2011-03-05 179 views
0

我正在构建一个应用程序,每隔15分钟检查一次网站以进行更改。当它打开时,我可以在应用中做到这一点。但是如何在应用程序处于后台时执行此操作?苹果推送通知

问题是我不认为我可以使用推送通知服务。正在检查的网站上的页面要求用户登录到该网站。由于每个应用程序都有一个cookie jar,所以用户在开始时通过UIWebView登录到网站,然后一旦登录,就会使用NSURLConnection每15分钟轮询一次该站点,并由于cookie而接收登录用户的数据在webview中登录时创建。我不相信有一种方法可以在许多不同用户的服务器上执行此操作。如果没有用户的网站用户名和密码必须存储在我的推送服务器上,这是一个很大的问题。

所以我可以使用任务完成,还是有可能访问一个页面,只有当正确的cookie从服务器存在,然后使用推送通知才显示正确。

回答

1

不幸的是,没有办法从UIWebview获取cookie。而任务后台完成只能运行10分钟。

我不确定你想要访问什么样的网站,但是如果你可以使用NSURLConnection复制登录,你可以使用NSHTTPCookie来检索cookie。然后将cookie数据存储在您的服务器上,然后使用“Set-Cookie”标题从服务器访问该网站,以检查内容是否有变化。

这当然取决于cookie持续多久(到期)。

+0

在服务器上存储cookie是否可行,是否有人可以从那里窃取人的帐户。另外,服务器如何知道谁的cookie是谁? –

+0

那么,你应该警告你的用户你会这样做。当然,如果有人访问服务器,他可以破解帐户。您需要确保您的服务器设置尽可能安全。 – tomislav

+0

您可以将用户cookie与用户推送通知令牌绑定。 – tomislav