phonegap:基于cookie的身份验证(PHP)无法正常工作[webview]

mea*_*aku 27 cookies ajax webview ios cordova

我正在开发一个使用sencha touch,HTML5和phonegap作为包装器的移动网络应用程序.

我正在使用PHP身份验证(Cookie)和ajax请求.在safari或chrome上一切正常,但在使用phonegap(webview)进行部署后,它再也无法工作了......

任何帮助,将不胜感激 :)

更多细节:

我的应用程序的所有数据都通过ajax请求加载到我的服务器组件"mobile.php".我使用基本的PHP-Auth来验证用户:

  1. AJAX-Request [用户名,密码] - > mobile.php - >会话建立(cookie)
  2. 如果auth成功,则所有其他请求

普通的safari网站和webview有什么区别?

mea*_*aku 27

我想到了:

您必须更改phonegap_delegate.m文件并将以下内容添加到init方法:


- (id) init
{   
    /** If you need to do any extra app-specific initialization, you can do it here
     *  -jm
     **/
    //special setting to accept cookies via ajax-request
    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage 
                                          sharedHTTPCookieStorage]; 
    [cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 

    return [super init];
}
Run Code Online (Sandbox Code Playgroud)

它使webview能够接受来自ajax请求的cookie

  • 这似乎不适用于iOS5.根据文档,"NSHTTPCookieAcceptPolicyAlways"是默认的cookie存储策略.然而,cookie不会在jQuery` $ .getJSON`请求中存储或发送. (4认同)