UIWebView实现自动登陆

IOS中UIWebView不会自动存储、读取Cookie.
要实现UIWebView的自动登陆,需要手动存储、读取Cookie.
1.Appelegate.m中加入以下代码

  • (void)applicationDidBecomeActive:(UIApplication *)application
    {
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
    }

  • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
    {
    //存储Cookie,示例加载的URL:http://119.29.69.58:81/index
    NSURL * cookieHost = [NSURL URLWithString:@”http://119.29.69.58:81“];
    NSHTTPCookie * cookie = [NSHTTPCookie cookieWithProperties:
    [NSDictionary dictionaryWithObjectsAndKeys:
    [cookieHost host],NSHTTPCookieDomain,
    [cookieHost path],NSHTTPCookiePath,
    @”COOKIE_NAME”,NSHTTPCookieName,
    @”COOKIE_VALUE”,NSHTTPCookieValue,nil]];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    }
    2.UIWebView加载URL时设置Header

NSURL * url = [NSURL URLWithString:@”http://119.29.69.58:81/index“];
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:url];
NSArray * cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];
[request setHTTPMethod:@”POST”];
[request setHTTPShouldHandleCookies:YES];
[request setAllHTTPHeaderFields:headers];
[self.WebView loadRequest:request];
3.退出登陆时删除Cookie

//清空Cookie
NSHTTPCookieStorage * myCookie = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie * cookie in [myCookie cookies])
{
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}

//删除沙盒自动生成的Cookies.binarycookies文件
NSString * path = NSHomeDirectory();
NSString * filePath = [path stringByAppendingPathComponent:@”/Library/Cookies/Cookies.binarycookies”];
NSFileManager * manager = [NSFileManager defaultManager];
[manager removeItemAtPath:filePath error:nil];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值