Android webview中cookie增加/修改
最近项目需求中,需要满足往webview传递cookie,而且cookie需要增加修改;
public class MainActivity extends Activity {
private WebView contentWebView = null;
private TextView msgView = null;
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contentWebView = (WebView) findViewById(R.id.webview);
msgView = (TextView) findViewById(R.id.msg);
// 启用javascript
contentWebView.getSettings().setJavaScriptEnabled(true);
// 从assets目录下面的加载html
contentWebView.loadUrl("http://60.29.255.184/api/android/setcookie");
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(btnClickListener);
contentWebView.addJavascriptInterface(this, "wst");
}
OnClickListener btnClickListener = new Button.OnClickListener() {
public void onClick(View v) {
// 无参数调用
// contentWebView.loadUrl("javascript:javacalljs()");
// // 传递参数调用
// contentWebView.loadUrl("javascript:javacalljswithargs(" + "'hello world'" + ")");
CookieSyncManager.createInstance(MainActivity.this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.getCookie("http://60.29.255.184");
System.out.println("--------------- 1 ----------------------"+cookieManager.getCookie("http://60.29.255.184"));
//第一次往cookie中新增值;
cookieManager.setCookie("http://60.29.255.184", "VodKeySid=f9d8d0cb5badcfb2f7803b64100574dd.120");
//替换cookie中的值;
cookieManager.setCookie("http://60.29.255.184", "VodKeySid=f9d8d0cb5badcfb2f7803b64100574dd.110");
System.out.println("--------------- 3 ----------------------");
System.out.println("----------------- 4 --------------------"+cookieManager.getCookie("http://60.29.255.184"));
CookieSyncManager.getInstance().sync();
contentWebView.loadUrl("http://60.29.255.184/api/android/getcookie");
}
};
public void startFunction() {
Toast.makeText(this, "js调用了java函数", Toast.LENGTH_SHORT).show();
runOnUiThread(new Runnable() {
@Override
public void run() {
msgView.setText(msgView.getText() + "\njs调用了java函数");
}
});
}
public void startFunction(final String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
runOnUiThread(new Runnable() {
@Override
public void run() {
msgView.setText(msgView.getText() + "\njs调用了java函数传递参数:" + str);
}
});
}
}
此代码测试无误,通过查看Sqlite中的记录 ,确实cookie已经新增,而且能够完成修改;
adb shell

包下面的文件目录

由于cookie存放在数据库中

打开webview的数据库

查看cookie中的值

测试机:android虚拟机,2.3.3版本;
测试机:HTC G14,4.0.3版本;
均测试无误。
代码连接:http://pan.baidu.com/share/link?shareid=122483160&uk=3909095065
Android webview中cookie增加/修改的更多相关文章
- Android webview 写入cookie的解决方法以及一些属性设置
原文地址:https://www.2cto.com/kf/201703/616868.html Android webview 写入cookie的解决方法以及一些属性设置,webview怎么设置写入C ...
- 【WebView】Android WebView中的Cookie操作
Hybrid App(混合式应用)的开发过程中少不了与WebView的交互,在涉及到账户体系的产品中,包含了一种登录状态的传递.比如,在Native(原生)界面的登录操作,进入到Web界面时,涉及到账 ...
- 关于android webview 设置cookie的问题
转自:http://blog.csdn.net/encienqi/article/details/7912733 我们在android中访问网络经常会用到Apache的HttpClient,用此类去访 ...
- Android WebView中的JavaScript代码使用
在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己创建接口在你的应用和Java ...
- Android WebView保存Cookie登录
因项目需要,需要在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能.同步Cookie到WebView的方法网上有大量的参考资料,也可以参考下面的代 ...
- Android Webview中解决H5的音视频不能自动播放的问题
在开发webview的时候,当加载有声音的网页的时候,声音不会自动播放, 解决方法:在webview中调用js方法.这个方法需要在webview的setWebViewClient方法之后在onPage ...
- Android WebView中那些不得不解决的坑~~
前面那张hybrid开发心得 有人问 怎么解决不用onJsPrompt 来回调js函数的问题.其实很简单,就是在在你的jscalljava回调函数内 另外开个线程去load js代码即可: wb.po ...
- Android WebView中显示一张或多张图片
最近需要在平板中显示多张图片,调查了下,决定用WebView(说实话,我还不清楚有没有其他android控件能够显示多张图片的.....), 主要是用HTML的img来显示多张图片. google百度 ...
- Android开发中上线后修改应用名称的若干问题
一.在Android Studio 1.3中修改app的包名: 需求来源: 之前开发的app已经在腾讯的应用宝上线,应客户要求,app需要改名字,这个就有点麻烦了.如果申请改名字,要求如下: 截图上图 ...
随机推荐
- ORA-12011+ORA-06512–job执行失败问题
oracle库中的一个job,正常运行了一年多,因某种原因导致无法运行,系统尝试多次均失败之后下次执行时间就变成了 4000/1/1. 现导致job失败的问题已经解决,从新运行job时报 12011和 ...
- IO流中的文件创建并且写入读取
package com.java.inoutputstreamDmeo.www; import java.io.File;import java.io.FileInputStream;import j ...
- tomcat内存溢出问题
内存泄露java.lang.OutOfMemoryError: PermGen space解决办法 今天访问web服务器,tomcat服务就瘫痪了,通过查看日志,发现java.lang.OutOfMe ...
- git: command not found
在使用git时,出现“git: command not found”的情况,于是使用yum安装: [root@localhost ~]# yum install -y gitLoaded plugin ...
- JS选择checkbox
<script> window.onload = function () { //获取checkbox var ids1 = document.getElementsByName('Vot ...
- onmouseleave与onmouseout区别
1.onmouseleave.onmouseenter,鼠标进入到指定元素区域内触发事件,不支持冒泡,不包含子元素的区域. 2.onmouseout.onmouseover.鼠标进入指定元素触发事件, ...
- 记录一下学习VC的初步过程.
有需要把状态栏图标缓存清空. 找到DELPHI和E语言的例子.最近学VC所以要改成VC的. 做控件的时候发现函数不能直接控制控件.在网上找了半天相关资料,都是说要包含"resource.h& ...
- 详解C/C++函数指针声明
要理解一个C程序,仅仅理解组成该程序的符号是不够的.程序员还必须理解这些符号是如何组合成声明.表达式.语句和程序的. 我们先来看看下面的一个语句: 1 ( *( void(*)())0)(); 这是当 ...
- 如何快速正确的安装 Ruby, Rails 运行环境-b
对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.次安装方法同样适用于产品环境! 系 ...
- Python的数字类型及其技巧
Python中的数字类型 int float fractions.Fraction decimal.Decimal 数字的舍与入 int(f):舍去小数部分,只保留整数部分,所以int(-3.8)的结 ...