首页 > Web开发 > 详细

WebView中session的传递

时间:2015-07-23 00:11:01      阅读:348      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!