andriod之应用内置浏览器 webview

参考:http://my.eoe.cn/694183/archive/10476.html

http://blog.csdn.net/it_ladeng/article/details/8136534

 

一.webView获取html页面中标签的方法:

1.在WebViewClient里的onPageFinished回调方法中执行js代码:

view.loadUrl("javascript:console.log('MAGIC'+document.getElementById('wxImg')['src']);");

2.在WebChromeClient里的onConsoleMessage回调方法中截取LOG信息:

@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {if (consoleMessage.message().startsWith("MAGIC")) {String msg = consoleMessage.message().substring(5); // strip off prefixcom.youku.util.Logger.d("dazhu_IntegratedWebView", "msg : " + msg);if (!TextUtils.isEmpty(msg)) {if (oritationChangeActivity != null)oritationChangeActivity.setReceiveImage(msg);}return true;}return super.onConsoleMessage(consoleMessage);
}

二.支持缩放,电脑网页适配手机屏幕

// 支持缩放
wb.getSettings().setBuiltInZoomControls(true);
wb.getSettings().setSupportZoom(true);
// 电脑网页最小化适配手机屏幕 
wb.getSettings().setUseWideViewPort(true);
wb.getSettings().setLoadWithOverviewMode(true);

三.app与webview共用cookie.前提访问网络用的是HttpURLConnection。

private void initCookie() {android.webkit.CookieSyncManager.createInstance(this);// unrelated, just make sure cookies are generally allowedandroid.webkit.CookieManager.getInstance().setAcceptCookie(true);// magic starts hereWebkitCookieManagerProxy coreCookieManager = new WebkitCookieManagerProxy(null, java.net.CookiePolicy.ACCEPT_ALL);java.net.CookieHandler.setDefault(coreCookieManager);}

 

public class WebkitCookieManagerProxy extends CookieManager
{private android.webkit.CookieManager webkitCookieManager;public WebkitCookieManagerProxy(){this(null, null);}public WebkitCookieManagerProxy(CookieStore store, CookiePolicy cookiePolicy){super(null, cookiePolicy);this.webkitCookieManager = android.webkit.CookieManager.getInstance();}@Overridepublic void put(URI uri, Map<String, List<String>> responseHeaders) throws IOException{// make sure our args are validif ((uri == null) || (responseHeaders == null)) return;// save our url onceString url = uri.toString();// go over the headersfor (String headerKey : responseHeaders.keySet()){// ignore headers which aren't cookie relatedif ((headerKey == null) || !(headerKey.equalsIgnoreCase("Set-Cookie2") || headerKey.equalsIgnoreCase("Set-Cookie"))) continue;// process each of the headersfor (String headerValue : responseHeaders.get(headerKey)){this.webkitCookieManager.setCookie(url, headerValue);}}}@Overridepublic Map<String, List<String>> get(URI uri, Map<String, List<String>> requestHeaders) throws IOException{// make sure our args are validif ((uri == null) || (requestHeaders == null)) throw new IllegalArgumentException("Argument is null");// save our url onceString url = uri.toString();// prepare our responseMap<String, List<String>> res = new java.util.HashMap<String, List<String>>();// get the cookieString cookie = this.webkitCookieManager.getCookie(url);// return itif (cookie != null) res.put("Cookie", Arrays.asList(cookie));return res;}@Overridepublic CookieStore getCookieStore(){// we don't want anyone to work with this cookie store directlythrow new UnsupportedOperationException();}
}

 参考:http://stackoverflow.com/questions/18057624/two-way-sync-for-cookies-between-httpurlconnection-java-net-cookiemanager-and

转载于:https://www.cnblogs.com/fanglove/p/3502091.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

权威解读 | 人类社会正进入DT时代 如何激活生产力?

导语当前&#xff0c;DT产业正在转入“快速发育”及“应用拉动”的发展阶段。 DT时代的新范式雏形初现。从工业时代到信息时代&#xff0c;从IT时代再到DT时代&#xff0c;不只是单个点上的技术突破、模式创新&#xff0c;而是已经发生了数轮包括“基础设施生产要素支柱产业分工…

分析纯文本外链在SEO优化方面的作用

在传统的SEO优化的角度上来看&#xff0c;超文本&#xff0c;锚文本以及纯文本的外链权重是依次递减的&#xff0c;所以很多人不愿意做纯文本外链&#xff0c;认为做纯文本外链无效的&#xff0c;笔者曾经一度也是这么认为&#xff0c;但是经过笔者优化网站一段时间之后&#x…

整整26本!由单墫教授主编、葛军等人操刀的高中数学教材都在这里!

全世界只有3.14 % 的人关注了爆炸吧知识我国从20世纪50年代以来&#xff0c;中学数学教学大纲虽经历多次修订&#xff0c;但都有一个共同的指导思想&#xff0c;就是搞好三基&#xff0c;同时强调指出&#xff0c;正确理解数学概念是掌握数学基础知识的前提。而当前我国数学教学…

如何通过 C# 将桌面截屏为图片?

咨询区 Omar Abid我想通过代码获取当前的电脑屏幕并保存为一张图片&#xff0c;就好像键盘的 截屏 按钮功能&#xff0c;请问这该如何实现&#xff1f;我没有好思路。回答区 Gary Willoughby&#xff1a;如果你的程序是 framework >2.0 的话&#xff0c;完全可以使用 CopyFr…

java里面什么时候环境变量_Java的环境变量什么时候需要设置?

1.在用MyEclipse开发的时不用配置环境变量&#xff0c;因为MyEclipse是个集成的IDE&#xff0c;之中指定了jre。环境变量配置与否和开发没有关系&#xff0c;环境变量是给成品用的。2. 除非要在命令行下用javac命令来编译java程序&#xff0c;否则不需要设置classpath环境变量&…

链表之单链表约瑟夫问题(三)

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我…

PHP语言 -- Ajax 查询数据

<body><select id"sel"></select><div><br/> <input type"button" id"btn" value"出现"/></div></body><script type"text/javascript">$(document).ready(function…

SQL Server 2008如何导出带数据的脚本文件

SQL之前的版本导出脚本的时候只能把数据表的结构导出&#xff0c;却不能把其中的数据一齐导出来&#xff0c;在平时的应用中难免有时希望获取数据导出的脚本&#xff0c;比如有时SQL版本不一样的时候&#xff0c;无法把高版本的数据库备份直接还原到低版本的数据库中&#xff0…

1 加到 100 的 时间复杂度 C#.

1 //1 加到 100 的 时间复杂度:2 int n 100;3 int sum 0;4 for(int i 1; i < n; i){5 sum i;6 }7 T(1) 1; //Initialize n.8 T(2) 1; //Initialize sum.9 T(3) 1; //Initialize i. 10 T(4) n 1; //i needs to compared with n 1 times. 11 T(5) …

女生:???

1 快速打个漂亮的领带&#xff0c;男生快来get√2 站住&#xff01;把小鱼干留下再走&#xff01;3 被狗子秀了一脸4 女生&#xff1a;&#xff1f;&#xff1f;&#xff1f;5 夏天的你vs冬天的你6 地球最濒危的兔种&#xff1a;Columbia Basin Pygmy Rabbit 7 你看 我们女孩子…

链表之判断一个链表是否为回文结构(一)

package com.zuo.linkedlist;import java.util.Stack;import com.zuo.linkedlist.Josephuskill2.Node;/*** 题目:给定一个头结点,判断该链表是否回文结构* 例如:* 1->2->1 true* 1->2->2->1 true* 1->2->3 false**思路一:*我们把链表的每个节点压入st…

C# WPF MVVM开发框架Caliburn.Micro 关于Conventions⑧

01—关于ConventionsCaliburn.Micro的一个主要特性是&#xff0c;它能够通过一系列约定消除对锅炉铭牌代码的需求。有些人喜欢习俗&#xff0c;有些人讨厌习俗。这就是为什么CM的约定是完全可定制的&#xff0c;如果不需要&#xff0c;甚至可以完全关闭。如果您要使用约定&…

JAVA类思维_面向对象思维 Java中的类和对象及其应用

一、面向过程与面向对象面向过程: 从事务执行者的角度思考问题,我该干什么 重点在过程----事务流程面向对象: 从事务的指挥者角度思考问题,我应该找谁干什么 重点在对象面向对象的优点:1.将复杂问题简单化2.从事务的执行者转化为事物的指挥者3.更贴近人的思维(懒人思想)二、类…

这部纪录片央视发力了,每一帧都可以当壁纸,BBC也无法超越

全世界只有3.14 % 的人关注了爆炸吧知识地球上已知的植物有三十多万种&#xff0c;其中十分之一生长在中国。这些植物不仅为中国带来福祉&#xff0c;还不断迁徙到世界各地。在人类的不懈努力下&#xff0c;它们又获得了新的姿态&#xff0c;为不同的文明带来不一样的色彩。《影…

C# 反射机制

C# 反射机制1、 什么是反射 2、 命名空间与装配件的关系 3、 运行期得到类型信息有什么用 4、 如何使用反射获取类型 5、 如何根据类型来动态创建对象 6、 如何获取方法以及动态调用方法 7、 动态创建委托 1、什么是反射 Reflection&#xff0c;中文翻译为反射。 …

链表之判断一个链表是否为回文结构(二)

package com.zuo.linkedlist;import java.util.Stack;import com.zuo.linkedlist.IsPalindrome1.Node;/*** 题目:给定一个头结点,判断该链表是否回文结构* 例如:* 1->2->1 true* 1->2->2->1 true* 1->2->3 false* 思路:我们针对前面进行优化,空间复杂…

python 正则使用笔记

python正则使用笔记 def remove_br(content):"""去除两边换行符"""content content.replace("<br>", "<br />").replace("<br >", "<br />")while re.findall("^<br …

Jquey将序列化对象在前台显示地几种方式

<1>序列化对象为单个对象的时候 //Student person new Student() { Name "张三",Code"001" }; //JavaScriptSerializer json new JavaScriptSerializer(); //string str json.Serialize(person); context.Response.Write(str); 前台Jq…

页面置换算法先进先出java_页面替换算法(FCFS,LRU,OPT三种)

import java.util.Scanner;import java.util.Arrays;import java.util.LinkedList;class PageReplacementAlgorithm{PageReplacementAlgorithm(){}public void FIFO(int PageOrder[],int block[]){//先进先出算法/**最开始&#xff0c;先把物理块放满*在物理块放满之后&#x…

解答网友提问 | 使用VS2022快速生成React/Angular/Vue.js + Web API前后端集成项目

前言上次发表了《一键生成Vue.js Web API前后端集成项目》后&#xff0c;有多位网友来问&#xff0c;有不有其他的前后端集成模板&#xff1a;实际上&#xff0c;VS2022没有提供前后端集成项目模板。但是&#xff0c;使用VS2022&#xff0c;同样可以轻松实现React/Angular/Vue…