是否可以从 Android 中的 webview 控件访问 session 变量(及其值)?
我搜索了文档但一无所获。
最佳答案
你可以像这样同步 webview session cookies
public static void sync(String url) {
List<Cookie> cookies=null;
CookieManager cookieManager = CookieManager.getInstance();
if (cookieManager == null)
return;
RFC2109Spec cookieSpec = new RFC2109Spec();
String rawCookieHeader = null;
try {
URL parsedURL = new URL(url);
rawCookieHeader = cookieManager.getCookie(parsedURL.getHost());
if (rawCookieHeader == null)
return;
int port = parsedURL.getPort() == -1 ? parsedURL.getDefaultPort()
: parsedURL.getPort();
CookieOrigin cookieOrigin = new CookieOrigin(parsedURL.getHost(),
port, "/", false);
cookies = cookieSpec.parse(new BasicHeader("set-cookie",
rawCookieHeader), cookieOrigin);
System.out.println("Session Cookis : " + cookies);
} catch (Exception e) {
}
}
如何调用?来自 WebView
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
sync(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
关于android - 从 WebView 访问 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21377399/