Android中的Webview一些知识点

面向前端的webview知识总结 本篇文主要面向前端同学食用,分别从简介,内核&组件,基本配置,加载,缓存机制,通信等几个方向列举安卓和iOS有关 webview 的知识点,希望前端在和客户端同学对接时不会太懵逼.. 阅读详情

记性不好,所以记下来^-^

1.获取加载的html的内容:

this.mWebView.addJavascriptInterface(this, "android");

mWebview.loadUrl("javascript:window.android.getSource('<html lang=\"zh-cn\">\\n'+" +
                        "document.getElementsByTagName('html')[0].innerHTML+'\\n</html>');");

@JavascriptInterface
public void getSource(String htmlContent) {
    //这里可以处理获取的html内容(htmlContent)
}

2.与js互相调用

1) android调用JS方法:

不带参数的方法:

mWebView.loadUrl("javascript:loadResource()")

 带参数的方法(注意字符串参数需要用' '包括):

mWebView.loadUrl("javascript:drawLocalStamp('" + stampBase64 + "')");

2)JS调用Android方法:

申明对象(android,可自定义):

this.mWebView.addJavascriptInterface(this, "android");

申明可供调用的Android方法:

 @JavascriptInterface
 public void onHandleMessage(String msg) {
 }

JS调用:

window.android.onHandleMessage(msg);

3.Websetting:对WebView进行配置和管理

缓存设置:

//优先使用缓存: 
WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
     //缓存模式如下:
     //LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
     //LOAD_DEFAULT: (默认)根据cache-control决定是否从网络上取数据。
     //LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.
     //LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。

//不使用缓存: 
WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

离线加载:

if (NetStatusUtil.isConnected(getApplicationContext())) {
    webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);//根据cache-control决定是否从网络上取数据。
} else {
    webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//没网,则从本地获取,即离线加载
}

webSettings.setDomStorageEnabled(true); // 开启 DOM storage API 功能
webSettings.setDatabaseEnabled(true);   //开启 database storage API 功能
webSettings.setAppCacheEnabled(true);//开启 Application Caches 功能

String cacheDirPath = getFilesDir().getAbsolutePath() + APP_CACAHE_DIRNAME;
webSettings.setAppCachePath(cacheDirPath); //设置  Application Caches 缓存目录,只能设置一次

5.WebViewClient:处理各种通知 & 请求事件

1)shouldOverrideUrlLoading:

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
   view.loadUrl(request.getUrl().toString()); //不会调用系统浏览器,而是在本Webview加载
   return true;   //返回true
}

6.WebChromeClient:辅助 WebView 处理 Javascript 的对话框,网站图标,网站标题等等

1) onProgressChanged

webview.setWebChromeClient(new WebChromeClient(){

      @Override
      public void onProgressChanged(WebView view, int newProgress) {
         //newProgress 加载进度
        }
    });
}

6.net:err_unknown_url_scheme

WebView在应用中还是很常见的,比如我们的注册协议、常见问题等

 @Override
      public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

        String urlStr = request.getUrl().toString();
        try {
          /*|| url.startsWith("http:") || url.startsWith("https:")*/
          if (urlStr.startsWith("weixin://") || urlStr.startsWith("alipays://") || urlStr.startsWith("tel://")) {
            //类型我目前用到的是微信、支付宝、拨号 三种跳转方式,其他类型自加
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlStr));
            startActivity(intent);
            return true;
          }
        } catch (Exception e) {
          return false;
        }
        view.loadUrl(urlStr);
        return true;

      }

Android 自动亮度 /则需要从BrightnessConfigure类中读取两个数组源:config_autoBrightnessLevels和config_autoBrightnessDisplayValuesNits。) 或知道其在DisplayPowerController()构造的时候初始化的。曲线设置好了,就应该扔代码里跑起来,模型建起来了,这个过程是咋样的呢?//它将负责曲线的创建,自动背光值的计算等。通过搜索配置关键词( 阅读详情

相关推荐

基于 Wi-Fi 的室内定位系统

目前,随着国内外相关从业人员的研究,研究者们提出了众多室内定位技术的理论与方法。在此仅讨论基于 Wi-Fi 的室内定位技术。 WI-FI室内定位 近年来Wi-Fi技术飞速发展,城市中的公共场所如大型超市商场、学校、企业等都已经广泛部署Wi-Fi。Wi-Fi室内定位技术已经出现了很多具有代表性的研究成果,如RADAR系统、Nibble系统、Weyes系统等室内定位系统。2012年,Google把Wi...

温染的笔记 9567

android webview使用

转自:http://www.cnblogs.com/oakpip/archive/2011/04/08/2009800.html 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。  什么是webkit  WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对v10.2.7及以上版本也可通过软件更新

Elena_wang的专栏 1985

【复现论文】Looking here or there? Gaze Following in 360-Degree Images

论文:Looking here or there?

RichardoMu的博客 1129

【Android 】WebView和原生控件交互

本文目录WebView 提高篇-和JavaScript的交互Android调用 JavaScript代码方法1:`loadUrl`方法方式2:`evaluateJavascript`方法JavaScript调用 Android 代码方式1:`addJavascriptInterface`方法方式2:shouldOverrideUrlLoading 方法方式3:`onJsAlert`、`onJsCo...

lucashu的博客 3750

USB 3.0 Rx Detect之超速U盘的识别

USB 3.0 Rx Detect之超速U盘的识别

汽车以太网和SOA 2万+

Comsol超声空化气泡仿真:从基础理论到工业应用实践

本文详细介绍了Comsol超声空化气泡仿真的基础理论及工业应用实践。通过解析超声空化现象、Comsol模型搭建流程及求解器优化技巧,帮助工程师掌握气泡仿真技术,提升超声波清洗和乳液制备等工业应用的效率与质量。

weixin_27966471的博客 252

Android之WebView

Android之WebView 文章目录Android之WebView1. WebVIew的功能2.WebView的使用前提3.WebVIew的使用3.1打开一个网页3.2 WebView和JavaScript的交互3.2.1 Android调用JavaScipt 1. WebVIew的功能 1.显示一个网页 2.混合开发,于JavaScipt交互 2.WebView的使用前提 因为在Android程序中打开网页肯定是需要网的嘛,所以一定不能忘了添加网络权限 <uses-permission andr

Demon_T的博客 699

Aloudata 荣登“数智技术系列榜单”和“数据智能服务商 TOP30”

持续助力各行业数智化先进企业突破数据管理技术瓶颈,以更加敏捷、精准和可靠的数据交付驱动企业业务创新与经营提效

Aloudata的博客 667

Android WebView的使用方法(基础篇)

最近在看混合开发相关的东西,所以记录一下webview的使用

snow_874142640的博客 4338

手把手教你用ES8311芯片搞定智能音箱TTS播放(附完整寄存器配置清单)

本文详细介绍了如何使用ES8311音频编解码芯片实现智能音箱TTS播放功能,包括芯片特性、硬件连接、寄存器配置及调试技巧。通过完整的寄存器配置清单和实战经验,帮助开发者快速掌握ES8311在智能音箱中的应用,优化音频输出质量和低功耗设计。

weixin_42567497的博客 558

服务器安装Ubuntu 18.04.2 LTS超详细步骤(小白图文详解)

服务器安装Ubuntu 18.04.2 LTS超详细步骤(小白图文详解) 本文不包括启动盘制作步骤,相关内容可自行百度 华为服务器 1 插入u盘,关机重启 2 初始化界面后进入到系统的BIOS设置界面 (华为服务器按Del键,不同品牌方法不同) 3 进入的时候,华为的服务器默认设置了BIOS密码,因此需要输入之前预设的密码。 注意密码大小写问题,若密码输错三次,则需重启 4 密码输入以后,进入...

crystalbang的博客 2万+

Android WebView 全面干货指南,2024年您应该知道的技术之一

JSBridge 我们可以比喻成一座桥或者一根管道,一端是 Web一端是 Native。我们搭建这个通道的目的就是让 Native 和 Web 之间互相调用更为方便统一和简洁。JSBridge 做得好的一个典型就是微信,微信给开发者提供了 JSSDK,该SDK中暴露了很多微信native层的方法,比如支付,定位等。使用起来非常方便。前端字节跳动真题解析开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】,18年进入阿里一直到现在。**

2401_83620959的博客 1654

无人机正射影像DOM孔洞修补的另一种方法并调整影像色差(附GlobalMapper24安装包(中文注册版))

之前介绍了用GlobalMapper联合PhotoShop对无人机正射影像DOM进行破洞修补,但是ps修图非常耗时,需要耐心和足够的细心。对于大面积的水域空洞,纹理特征都差不多,没必要修补得那么细致入微,本文介绍另一种直接在Global Mapper中快速修补大面积水域空洞的方法。 一、Global Mapper中检查数据 二、使用“数字化”工具,绘制需要补洞的多边形区域 三、导出绘制好的矢量区域 四、打开影像下载软件,选择影像图源 五、下载影像 六、调整影像的色差 七、合并影像并输出 八、检查结果数据

从地图看世界的专栏 1549

Android WebView 总结,Android WebView知识点总结

Android WebView知识点总结时间:2017-05-18 14:40分享到:github项目中用到的webview的东西比较多,在这里总结一下。权限在AndroidManifest.xml中添加网络访问权限:"android.permission.INTERNET"设置WebView要显示的网页互联网用:webView.loadUrl("http://www.google.com");本...

weixin_42523792的博客 223

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

安卓知识点-应届生扫盲安卓WebView

作者大家好,我叫Jack冯;本人20年硕士毕业于广东工业大学,于2020年6月加入37手游安卓团队;目前主要负责海外游戏发行安卓相关开发。作者:37手游移动客户端团队 链接:https://juejin.cn/post/7245084484756144186背景 最近在接触活动相关需求,其中涉及到一个安卓的WebView;刚毕业的我,对安卓知识积累比较少,所以在这里对Webview进行相关学习,希...

Android技术之家 259

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android中webview的相关知识点

webview是Android中用来加载网页的一个组件。有一定开发基础的Android程序员应该都是很熟悉这个组件的。有时候我们可能直接使用webview,有时候我们喜欢使用类似AgentWeb之类的三方框架。这里我总结一下webview的一些相关常用方法。今后不论怎么使用webview,这些常用方法都是必不可少的。 1.webview的常用方法 loadUrl:加载指定的URL,URL可以是HTTP打头的 外部网址,也可以是file打头的资产网页。 getSettings:获取浏览器的网页设置信息。

水月洞天 613

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Android知识点:Webview

一、概述       webview是android承载网页的一个控件,使用的是android系统自带的webkit浏览器。   二、使用   跟其他控件使用一样,webview可以以标签或者动态生成。   1、loadUrl(String url)        使用此方法加载网页url 加载网页   2、addJavascriptInterface(Object o, Stri...

qq_30207527的博客 582

Android-----WebView使用知识点总结

文章出处:http://www.cnblogs.com/oakpip/archive/2011/04/08/2009800.html   大部分内容为网上整理其它高人的帖子,现只作整理,用于查看: 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。 什么是webkit WebKit是Mac OS X v10

zhou699的专栏 2605

Android Webview知识点和遇到过的坑全总结

Java和Android架构 欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们。或搜索微信公众号:JANiubility。 公众号:JANiubility    WebView 用来显示网页的一个View,它使用WebKit渲染引擎显示web页面,可以加载在线的或者本地的html页面,WebView可以对页面进行一系列操作,如历史页

AMEPRE88的博客 972

android webView相关知识点

昨天做了一个11平台天体查分的小助手,用到了webView,随手记下学习中遇到的问题和知识点: 1.webView支持JavaScript      webView.getSettings().setJavaScriptEnabled(true); 2.webView可调整页面大小      webView.getSetings().setSupportZoon(true);

controlsxxf的专栏 764

Android 控件: Webview 的一些知识点

WebView 加载网页,当点击返回键的时,会显示上一个页面,并刷新。 同时可以对返回上一个页面进行干预,就是用到了缓存。 webview加载网页的几个模式,即websetting中设置的加载模式。websetting.setCacheMode( int  mode)。 LOAD_CACHE_ELSE_NETWORK:只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。 LOAD_...

weixin_34341229的博客 78

分享:android 源码——Webview开发常用知识点

分享:android 源码——Webview开发常用知识点:   [color=ound-color:rgb(247,]1、添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。   [color=ound-color:rgb(247,] 2、在要Activity中生成

天地会博客 638

【Android知识点精讲】(9)WebView

今天我们来学习和网络相关的控件——WebView 一 浏览网页 WebView可以直接显示指定的网页: webView.loadUrl("http://www.baidu.com");我们通过这个方法可以自己写一个简单的网页浏览器。我们创建一个输入网页地址的EditText,一个跳转的按钮,菜单提供前进和后退的功能: package cn.thr.browser; import an

scarthr的专栏 1261

Android WebView全面讲解

WebView是Android中的原生UI控件,主要用于在app应用中方便地访问远程网页或本地html资源。同时,WebView也在Android中充当Java代码和JS代码之间交互的桥梁。实际上,也可以将WebView看做一个功能最小化的浏览器。本文将全面讲解WebView各方面的知识点。 2.基本使用 创建一个WebView组件 通常情况下,我们会在XML文件中定义需...

CodingEnding的博客 2407

android控件webview,初识WebView控件

工作需要,学习WebView控件,目前还没有在实际工作中使用,以此作为初识WebView控件的总结。从《第一行代码》中可知:Android提供了一个WebView控件,借助它我们就可以在自己的应用程序里嵌入一个浏览器,从而非常轻松地展示各种各样的网页。WebView在后台帮我们处理好了发送HTTP请求、接受服务响应、解析返回数据,以及最终的页面展示这几步工作。具体操作流程为:首先,在布局文件中放置...

weixin_30819757的博客 308
上一篇: Bitmap详细讲解
下一篇: app保活持续更新中
java_for
博客等级 码龄12年 6粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值