【发布时间】:2011-10-24 16:31:27
【问题描述】:
我有一个带有登录屏幕的 Android 应用程序。单击登录按钮后,我将启动一个带有传递给它的 cookie 的 web 视图。所以,我可以在 webview 中看到网页的内容。
但是当我点击加载的网页的链接时,请求失败并且从那里网页没有加载。如何传递cookie,让我登录后可以无情地遍历任意数量的网页。
【问题讨论】:
标签: android cookies android-webview httpcookie
我有一个带有登录屏幕的 Android 应用程序。单击登录按钮后,我将启动一个带有传递给它的 cookie 的 web 视图。所以,我可以在 webview 中看到网页的内容。
但是当我点击加载的网页的链接时,请求失败并且从那里网页没有加载。如何传递cookie,让我登录后可以无情地遍历任意数量的网页。
【问题讨论】:
标签: android cookies android-webview httpcookie
试试这个..
WebView webview = new WebView(this);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(webview.getContext());
cookieSyncManager.startSync();
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
cookieManager.setCookie(URL, COOKIE);
cookieSyncManager.sync();
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl(URL);
setContentView(webview);
【讨论】:
您不应该离开您的 WebView。拦截链接并在自己的WebView中加载URL
WebView webview = new WebView(this);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
setContentView(webview);
webview.loadUrl(yourUrl);
【讨论】: