案例就是本地的登录界面与网页的登录信息如何同步的问题:做混合开发的时候经常遇到的问题是,本地实现登录界面,登录成功后,使用webView加载网页,这时网页会提示需要登录。这显然是不友好的。
如何把本地的登录信息与网页的登录同步呢?或者网页登录成功后,又如何同步到本地呢?本地如何获取网页的登录信息呢?这里你可以得到答案
下面就来实现这个功能。
这里会遇到两个问题。
1.客户端登录时如何取出cookie信息
2.如何把取出的cookie信息与webview同步传递给服务器
写一个获取cookie的类,本地登录获取cookie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
package
com.example.androidtest;
import
java.io.IOException;
import
java.util.ArrayList;
import
java.util.Date;
import
java.util.List;
import
org.apache.http.HttpResponse;
import
org.apache.http.NameValuePair;
import
org.apache.http.client.ClientProtocolException;
import
org.apache.http.client.HttpClient;
import
org.apache.http.client.entity.UrlEncodedFormEntity;
import
org.apache.http.client.methods.HttpPost;
import
org.apache.http.cookie.Cookie;
import
org.apache.http.impl.client.AbstractHttpClient;
import
org.apache.http.impl.client.DefaultHttpClient;
import
org.apache.http.impl.conn.DefaultClientConnection;
import
org.apache.http.message.BasicNameValuePair;
import
android.os.Handler;
import
android.os.Message;
import
android.util.Log;
//WevView Cookie同步问题
public
class
HttpCookie
extends
Thread {
private
Handler handler;
private
String ASP_SessionId;
public
HttpCookie(Handler handler){
this
.handler = handler;
}
@Override
public
void
run() {
HttpClient client =
new
DefaultHttpClient();
List<namevaluepair> list =
new
ArrayList<namevaluepair>();
try
{
list.add(
new
BasicNameValuePair(
"name"
,
"nates"
));
list.add(
new
BasicNameValuePair(
"age"
,
"21"
));
Date sessionTime =
new
Date();
|