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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!