2

我有一个可以访问经过身份验证的内容的应用程序。我知道 webview 无法处理身份验证,所以我做了一些 NSConnection 魔术使其工作(类似于此

问题是使用此 Web 视图可以访问某些内容,但是在成功验证后,还有一些其他内容事件,Web 视图无法加载。

但是..如果我输入与移动 safari 相同的 url,输入所需的凭据,然后返回我的应用程序,WebView 似乎可以正常加载内容。

我尝试在使用此代码完成 Safari 中的身份验证之前和之后查看 cookie

[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];

和饼干是一样的。

据我了解,代码将检索我的应用程序生成的 cookie,而不是 iOS 中可用的 cookie,所以显然这不是寻找提示的方法......

有任何想法吗?

4

3 回答 3

4

最近,我在互联网上潜伏着同样的问题,答案是“否”=(。UIWebView 类和 Safari 或其他浏览器的对象分开并被沙盒化。 是关于 cookie 的官方立场。

于 2012-10-11T13:41:51.300 回答
0

据我所知,Cookie 不能与来自 Webview 的第一个请求一起发送,但可以与后续请求一起发送到同一个 URL,当且仅当第一个请求成功时。

这会导致身份验证服务出现问题,这些服务需要 cookie 在对 URL 的第一次请求时进行身份验证。

于 2013-01-22T19:57:37.327 回答
-1

可能用户凭据是通过钥匙串 API 存储的。钥匙串在应用程序之间共享,因此存储在 Safari 中的登录名/密码可以出现在您的应用程序 UIWebView 中。您能否详细说明一下,因为我也需要这个。

于 2013-04-06T12:41:35.290 回答