Android WebViewClient跨域会话值丢失

时间:2014-02-05 05:27:12

标签: android session webview

我有一个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);
}

0 个答案:

没有答案