起标题好麻烦。
开开心心的撸代码了,接着昨天的,web端开户cookie,手机端在进行post请求的时候需要加上cookie,不幸的vollery没有这个功能,苦逼中baidu中。昨天倒是看了一些。嗯,
理了一下过程。应该这个样子处理,在使用webview进行登录,成功后保存接收到的cookie到本地,进行post请求的时候带上这个cookie。嗯,没错就是这个样子。
1.在webview进行网页加载的时候,获取cookie的值,并进行保存为全局变量,没错。后面再进行post请求的时候带上这个cookies就可以了
public void onPageFinished(WebView view, String url) { /*获取cookie的值*/ CookieManager cookieManager = CookieManager.getInstance(); String CookieStr = cookieManager.getCookie(url); LogUtil.d("jump", "Cookies = " + CookieStr); progressDialog.dismiss(); super.onPageFinished(view, url); }然后再进行vollery的post请求时带上cookie
@Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap localHashMap = new HashMap(); localHashMap.put("Cookie", EzvizApplication.getInstance().getCookie());//向请求头部添加Cookie return localHashMap; }可以了,可是听那边的工程师说好像这个样子不可以,cookie是不可以进行本地存储的。会有安全问题,唉。。。。。。先把功能调试通过吧
2。在activity显示时上部出现标题栏,现在需要进行全屏显示,注意的是标题栏的去年一定要在setContentView()语句之前。没错,是这个样子
this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 setContentView(R.layout.activity_addmachine);好了,现在可以休息一会了,web端出现了一些小问题,我的迷瞪一会了。。。。。。。。
3.现在要开始解决一个大问题了,就是webview进行goback的时候,不可以回退到登录页面,这个找找资料先。。解决了
在doUpdateVisitedHistory()方法当中调用clearHistory()方法可以将之前的历史进行清除,好像只有在这个方法当中调用才可以,不太明白,这里加了一个判断条件,如果
当前的url是数据显示列表,说明前一个页面是登录页面,清除就可以了,if()里面是进行清除的判断条件,没错。但是如果开启cookie的话,直接登录也是没有影响,本来就没有登录页面。
@Override public void doUpdateVisitedHistory(WebView webView, String s, boolean b) { /*在本方法当中,如果当前的页面是设备列表,则清除之前记录 * 是为了webview进行goback()的时候不能回退到登录页面*/ if (s.equals(UrlBean.getMachineInfo())) { webView.clearHistory(); } }
貌似也可以,哈哈,今天是什么情况,下雨天状态特别好啊,哈哈,想来还是之前的那个想法是正确的,别三心两意,如果这段时间需要做android应用就安安心心的做这个,别再想些其它的东西。没错,这会我这边的问题差不多了,web那边在忙着改东西,哈哈,好吧,现在看一下java中关于super()的用法 。。
感觉一会半会web那边是调整不好了,哈哈,迷瞪会。
下午了,对面调整的差不多了,功能上基本上都实现了,后面就是UI的美化了
4.还有一个问题就webview每次进行goback的时候需要进行bottom的显示和隐藏,但是不知道URL不知道怎么进行判断 度娘中。。。。webview加载过的所有页面都会保存到一个列表当中,得到这个列表后,就可以取得对应的url,然后就可以为所欲为了,哈哈
http://blog.csdn.net/sinat_35670989/article/details/71077716文章中写的方法刚好
5.需要用到一个小方法java当中判断一个字符串当中是含有另一个字符串,方法s.contains(str).如果含有则为true,否则为false
if(url.contains(UrlBean.getDataDetail())) hideBottom();
6.当屏幕进行旋转的时候会出现重新加载activity的情况,出现各种各样的bug,决定设置为应用不可以旋转,只能竖屏,在androidManifest.xml文件当中设置activity的属性
发现在这里studio没办法进行提示,不知道是不赞同这种做法,还是其它的,但是验证这种方法可行。
<activity android:name=".ConnectWifi" android:screenOrientation="portrait">
又一天过去了,真快。。。