最近项目需求中,需要满足往webview传递cookie,而且cookie需要增加修改;

  1. public class MainActivity extends Activity {
  2.  
  3. private WebView contentWebView = null;
  4. private TextView msgView = null;
  5.  
  6. @SuppressLint("SetJavaScriptEnabled")
  7. @Override
  8. public void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main);
  11. contentWebView = (WebView) findViewById(R.id.webview);
  12. msgView = (TextView) findViewById(R.id.msg);
  13. // 启用javascript
  14. contentWebView.getSettings().setJavaScriptEnabled(true);
  15. // 从assets目录下面的加载html
  16. contentWebView.loadUrl("http://60.29.255.184/api/android/setcookie");
  17.  
  18. Button button = (Button) findViewById(R.id.button);
  19. button.setOnClickListener(btnClickListener);
  20. contentWebView.addJavascriptInterface(this, "wst");
  21. }
  22.  
  23. OnClickListener btnClickListener = new Button.OnClickListener() {
  24. public void onClick(View v) {
  25. // 无参数调用
  26. // contentWebView.loadUrl("javascript:javacalljs()");
  27. // // 传递参数调用
  28. // contentWebView.loadUrl("javascript:javacalljswithargs(" + "'hello world'" + ")");
  29. CookieSyncManager.createInstance(MainActivity.this);
  30. CookieManager cookieManager = CookieManager.getInstance();
  31. cookieManager.setAcceptCookie(true);
  32. cookieManager.getCookie("http://60.29.255.184");
  33.  
  34. System.out.println("--------------- 1 ----------------------"+cookieManager.getCookie("http://60.29.255.184"));
  35. //第一次往cookie中新增值;
  36. cookieManager.setCookie("http://60.29.255.184", "VodKeySid=f9d8d0cb5badcfb2f7803b64100574dd.120");
  37. //替换cookie中的值;
  38. cookieManager.setCookie("http://60.29.255.184", "VodKeySid=f9d8d0cb5badcfb2f7803b64100574dd.110");
  39. System.out.println("--------------- 3 ----------------------");
  40. System.out.println("----------------- 4 --------------------"+cookieManager.getCookie("http://60.29.255.184"));
  41. CookieSyncManager.getInstance().sync();
  42.  
  43. contentWebView.loadUrl("http://60.29.255.184/api/android/getcookie");
  44. }
  45. };
  46.  
  47. public void startFunction() {
  48. Toast.makeText(this, "js调用了java函数", Toast.LENGTH_SHORT).show();
  49. runOnUiThread(new Runnable() {
  50.  
  51. @Override
  52. public void run() {
  53. msgView.setText(msgView.getText() + "\njs调用了java函数");
  54.  
  55. }
  56. });
  57. }
  58.  
  59. public void startFunction(final String str) {
  60. Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
  61. runOnUiThread(new Runnable() {
  62.  
  63. @Override
  64. public void run() {
  65. msgView.setText(msgView.getText() + "\njs调用了java函数传递参数:" + str);
  66.  
  67. }
  68. });
  69. }
  70. }

此代码测试无误,通过查看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增加/修改的更多相关文章

  1. Android webview 写入cookie的解决方法以及一些属性设置

    原文地址:https://www.2cto.com/kf/201703/616868.html Android webview 写入cookie的解决方法以及一些属性设置,webview怎么设置写入C ...

  2. 【WebView】Android WebView中的Cookie操作

    Hybrid App(混合式应用)的开发过程中少不了与WebView的交互,在涉及到账户体系的产品中,包含了一种登录状态的传递.比如,在Native(原生)界面的登录操作,进入到Web界面时,涉及到账 ...

  3. 关于android webview 设置cookie的问题

    转自:http://blog.csdn.net/encienqi/article/details/7912733 我们在android中访问网络经常会用到Apache的HttpClient,用此类去访 ...

  4. Android WebView中的JavaScript代码使用

    在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己创建接口在你的应用和Java ...

  5. Android WebView保存Cookie登录

    因项目需要,需要在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能.同步Cookie到WebView的方法网上有大量的参考资料,也可以参考下面的代 ...

  6. Android Webview中解决H5的音视频不能自动播放的问题

    在开发webview的时候,当加载有声音的网页的时候,声音不会自动播放, 解决方法:在webview中调用js方法.这个方法需要在webview的setWebViewClient方法之后在onPage ...

  7. Android WebView中那些不得不解决的坑~~

    前面那张hybrid开发心得 有人问 怎么解决不用onJsPrompt 来回调js函数的问题.其实很简单,就是在在你的jscalljava回调函数内 另外开个线程去load js代码即可: wb.po ...

  8. Android WebView中显示一张或多张图片

    最近需要在平板中显示多张图片,调查了下,决定用WebView(说实话,我还不清楚有没有其他android控件能够显示多张图片的.....), 主要是用HTML的img来显示多张图片. google百度 ...

  9. Android开发中上线后修改应用名称的若干问题

    一.在Android Studio 1.3中修改app的包名: 需求来源: 之前开发的app已经在腾讯的应用宝上线,应客户要求,app需要改名字,这个就有点麻烦了.如果申请改名字,要求如下: 截图上图 ...

随机推荐

  1. SQL 编译与重编译

    编译的含义 当SQLSERVER收到任何一个指令,包括查询(query).批处理(batch).存储过程.触发器(trigger) .预编译指令(prepared statement)和动态SQL语句 ...

  2. nginx图片服务器配置

    worker_processes ; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/erro ...

  3. HDU 2089 不要62(数位DP)

    不要62 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了, ...

  4. mysql学习笔记2

    drop database 数据库名称;————删除数据库 show columns from 数据表名[from 数据库名]:(或者 show columns from 数据库.数据表名:)———— ...

  5. ASP.NET数据绑定控件

    数据绑定控件简介 数据绑定分为:数据源 和 数据绑定控件 两部分,数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使用者,数据源有:SqlDataSource,AccessDataS ...

  6. scala - 从合并两个Map说开去 - foldLeft 和 foldRight 还有模式匹配

    开发中遇到需求:合并两个Map集合对象(将两个对应KEY的值累加) 先说解决方案: ( map1 )) ) } 这特么什么鬼  (╯‵□′)╯""┻━┻☆))>○<)  ...

  7. YII 开启URL伪静态

    1.开启apache的mode_rewrite模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号 确保<Directory ...

  8. Fedora 21 安装QQ国际版

    首先安装依赖包 sudo yum install freetype.i686 libpng.i686 libgcc.i686 libXau.i686 点击下载wine-2012qq国际版 unzip ...

  9. Sublime Text3 个人使用心得

    sublime与webstorm的比较: webstorm真心很强大,强大到能够几乎满足所有前端开发者编程的需求,方便的快捷键操作.代码提示.浏览器查看.工程管理.历史记录(可以找到之前编辑的内容,即 ...

  10. 【转】oracle PLSQL常用方法汇总

    原文:http://www.cnblogs.com/luluping/archive/2010/03/10/1682885.html 在SQLPLUS下,实现中-英字符集转换alter session ...