我有一个webview客户端,可以调用我的网站http://www.mysite.com。调用此页面时,我在会话中设置了一些值。然后页面调用我无法控制的第三方页面https://thirdpartysite.com。当页面从第三方页面返回时,我将丢失我在http://www.mysite.com上设置的会话值。这种情况在基于桌面的环境中运行良好,但在Android设备上,我似乎失去了会话值。我尝试在webview上启用cookie但没有帮助。
请帮忙
private WebView browser;
protected void onResume() {
setContentView(R.layout.main);
browser = (WebView)findViewById(R.id.webview1);
browser.setWebViewClient(new myWebClient());
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("string", string));
UrlEncodedFormEntity entity = null;
try {
entity = new UrlEncodedFormEntity(parameters);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
browser.getSettings().setLoadsImagesAutomatically(true);
browser.getSettings().setJavaScriptEnabled(true);
browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
browser.postUrl("https://mysite.aspx",
EntityUtils.toByteArray(entity));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
super.onResume();
}
public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && browser.canGoBack()) {
browser.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}