码迷,mamicode.com
首页 > Web开发 > 详细

WebView中session的传递

时间:2015-07-23 00:12:42      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:

因要app中使用webview访问一个网站,但是app与服务器的沟通是使用HttpUrlConnection来完成的,

设计要求是:使用webview访问时不需要再次登陆,直接app的登陆状态。
 
在查询了资料后,发现可以像如下这样做:
1. 获取到HttpUrlConnection里服务器返回的session id。
2. 将此session id设置到CookieManager里即可。
 
完成上面两部,webview就可以利用这个session来打开制定的页面了。
 
以下是测试代码:
private class LoadWebViewTask extends AsyncTask<Void, Void, Void> {

    CookieManager cookieManager;


    @Override
    protected void onPreExecute() {
        CookieSyncManager.createInstance(TestWebActivity.this);

        cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        cookieManager.removeSessionCookie(); //移除上一次的session
    }


        @Override

        protected Void doInBackground(Void... params) {

            ThreadUtils.sleep(1500); //等待cookieManager处理完毕

            return null;

    }


    @Override
    protected void onPostExecute(Void result) {
        cookieManager.setCookie("test.com", "ASP.NET_SessionId=" + 

        businessLogicManager.getSessionId()); //设置cookie

        CookieSyncManager.getInstance().sync(); //同步
        webView.loadUrl("http://test.com");

    }

}

 

WebView中session的传递

标签:

原文地址:http://www.cnblogs.com/fairy520wch/p/4668942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!