使用webview加载网页时session同步,服务器该怎么写

使用webview加载网页时session同步,服务器该怎么写,第1张

使用webview加载网页时session同步,服务器该怎么写

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法

第一种方法的步骤:

1.在要Activity中实例化WebView组件:WebView webView = new WebView(this)

2.调用WebView的loadUrl()方法,设置WevView要显示的网页:

互联网用:webView.loadUrl

本地文件用:webView.loadUrl("file:///android_asset/XX.html")本地文件存放在:assets 文件中

3.调用Activity的setContentView( )方法来显示网页视图

4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面

5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。

<uses-permission android:name="android.permission.INTERNET" />

第二种方法的步骤:

1、在布局文件中声明WebView

2、在Activity中实例化WebView

3、调用WebView的loadUrl( )方法,设置WevView要显示的网页

4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图

5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面

6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。

<uses-permission android:name="android.permission.INTERNET"/>

在开发一个项目时,遇到了这么一个问题,登录界面是用Android的native的UI来做的,登录成功后会跳转到WebView来加载Sencha Touch的数据,但是在WebView到后台Load数据的时候发现,这时的session和登录时的session不同了,因此取不到数据,为此google了很久,终于在StackOverflow找到了方法,在此先贴出原文地址:

其中关键点在下面的这些code里:

private DefaultHttpClient httpClient

public static Cookie cookie = null

//After Login

List<Cookie>cookies = httpClient.getCookieStore().getCookies()

if (!cookies.isEmpty()) {

for (int i = 0i <cookies.size()i++) {

cookie = cookies.get(i)

}

}

//注:下面的code写在WebView的Activity里

//------- Web Browser activity

Cookie sessionCookie = myapp.cookie //这里的cookie就是上面保存的cookie

CookieSyncManager.createInstance(this)

CookieManager cookieManager = CookieManager.getInstance()

if (sessionCookie != null) {

cookieManager.removeSessionCookie()

String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "domain=" + sessionCookie.getDomain()

cookieManager.setCookie(myapp.domain, cookieString)

CookieSyncManager.getInstance().sync()

不多说了,主要是在登录成功后,把cookie存起来,然后在WebView中SetCookie。

posted @ 2012-02-16 10:18 与时俱进 阅读(...) 评论(...) 编辑 收藏

鉴于网上很多设置Cookie的方法,我来说下我在设置cookie遇到的问题。由于服务端说cookie需要包含sessionID,故直接用了方法一,但问题就出现了,cookie中有些参数也许无效,比如域名。这就导致页面访问出错了。

方法一:

  [request setHTTPShouldHandleCookies:YES]

[request setValue:@"JESSIONID" forHTTPHeaderField:@"Cookie"]

方法二:

其中arrs[0] = @"JESSIONID" ,arrs[1] = @"sessionID的值" 

注意:域名一定要设置,否则设置的cookie无效,且域名要正确,若不对,访问也会出错。与需要访问的网页对应。像我这个就直接是ip了,因为域名要钱

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11290386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存