现在我有个APP是嵌入的webView 登陆需要记住用户名和密码下次自动登陆,求大神看看如何实现?谢谢
目前这个问题我已经解决了,希望有用到的朋友来这里看http://www.jianshu.com/p/9bf9...:给颗心
另我把代码写到这里一份也:
1、在UIWebView的代理方法中实现获取cookies并将cookies放到NSUserDefaults保存起来
- (void)webViewDidFinishLoad:(UIWebView*)webView{
NSArray*nCookies = [[NSHTTPCookieStoragesharedHTTPCookieStorage]cookies];
NSHTTPCookie*cookie;
for(idcinnCookies)
{
if([cisKindOfClass:[NSHTTPCookieclass]])
{
cookie=(NSHTTPCookie*)c;
if([cookie.nameisEqualToString:@"PHPSESSID"]) {
NSNumber*sessionOnly = [NSNumbernumberWithBool:cookie.sessionOnly];
NSNumber*isSecure = [NSNumbernumberWithBool:cookie.isSecure];
NSArray*cookies = [NSArrayarrayWithObjects:cookie.name, cookie.value, sessionOnly, cookie.domain, cookie.path, isSecure,nil];
[[NSUserDefaultsstandardUserDefaults]setObject:cookiesforKey:@"cookies"];
break;
}
}
}
}
2、获取cookies:运行之后,UIWebview加载url之前获取保存好的cookies,并设置cookies,
NSArray*cookies =[[NSUserDefaultsstandardUserDefaults]objectForKey:@"cookies"];
NSMutableDictionary*cookieProperties = [NSMutableDictionarydictionary];
[cookiePropertiessetObject:[cookiesobjectAtIndex:0]forKey:NSHTTPCookieName];
[cookiePropertiessetObject:[cookiesobjectAtIndex:1]forKey:NSHTTPCookieValue];
[cookiePropertiessetObject:[cookiesobjectAtIndex:3]forKey:NSHTTPCookieDomain];
[cookiePropertiessetObject:[cookiesobjectAtIndex:4]forKey:NSHTTPCookiePath];
NSHTTPCookie*cookieuser = [NSHTTPCookiecookieWithProperties:cookieProperties];
[[NSHTTPCookieStoragesharedHTTPCookieStorage]setCookie:cookieuser];
注意:要在[self.webView loadRequest:req];之前设置获取cookies!
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
是否跟cookie有关
我现在也遇到这个问题“在qpp中嵌套webview需要保存账户和密码下次登录时不用再输入了”,楼主解决了吗?用的什么方法?如果有方法实现能不能给我发到邮箱 928284971@qq.com
没有必要这么做 ,也不要用cookie,webview里的单页面app是不能通过cookie来保持持久状态连接的,正确的做法应该是和后端去交换token ,检查token 是否过期 ,然后html5里面有一个重要的对象解决了web view里面持久化保存的问题:localstorage,localstorage 是一个类似于键值对的东西 保存在你的app 本地,你只要把你的用户信息以json 的方式存放到app里面,然后直接用js 去调用就可以了.举例 你第一次进来跳到登录页面以后 用户一旦登陆就把{username:'nickname',sex:'male',token:'yourtoken'}存放到localstorage的user 字段里,你下一次进webview 的时候只要去判断localstorage里的user字段是否为空,若不为空则取出user,然后每次和后端api请求都通过token,来判断 token 是否过期 如果过期则跳转到重新登录页面。这都是很标准的web app的标准做法。并且webview里的app建议使用angular或者react等框架和库来实现