![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WebView
Luckie stone
Android应用开发。
展开
-
Android与JS交互篇--JSBridge的使用
先看下接下来将要实现的效果图:一、JsBridge的基本概念Android4.4以前,谷歌的webview存在安全漏洞,网站可以通过js注入就可以随便拿到客户端的重要信息,甚至轻而易举的调用本地代码进行流氓行为,谷歌在4.4以后增加了防御措施,如果用js调用本地代码,开发者必须在代码声明JavascriptInterface, 4.4之前我们要使得webView加载js只需如下代码:...转载 2019-07-28 07:14:45 · 809 阅读 · 0 评论 -
android webview input软件盘覆盖问题---AndroidBug5497Workaround
//1.创建本类//2.在activity中使用(必须在setContentView之后):// AndroidBug5497Workaround.assistActivity(this); package com.example.lyj.video; import android.app.Activity;import android.graphics.Rect;impo...转载 2019-01-06 09:46:48 · 542 阅读 · 0 评论 -
android webview JS传值 prompt
<!DOCTYPE html><html style="min-height: 100%"> <head> <meta charset="utf-8"> <title>Carson_Ho</title> <style> * {转载 2019-01-06 09:44:06 · 422 阅读 · 0 评论 -
android webview JS传值
1.布局<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com...转载 2019-01-06 09:41:50 · 428 阅读 · 0 评论 -
android通过WebView的evaluateJavascript()调用JS
因为该方法的执行不会使页面刷新,而方法(loadUrl )的执行则会使页面刷新。 Android 4.4 后才可使用 public class MainActivity extends Activity { WebView webView; Button buttonLeft, buttonRight; @Override protected void onC...转载 2019-01-06 09:36:21 · 25448 阅读 · 0 评论 -
Android通过WebView调用 JS 代码
a. webView.loadUrl("javascript:callJS()");b. setWebChromeClient响应弹窗1.布局<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app=...转载 2019-01-06 09:34:44 · 598 阅读 · 0 评论 -
How Do You Use WebMessagePort As An Alternative to addJavascriptInterface()?
Google's security guidelines for Android app developers has the following:WebViews do not use addJavaScriptInterface() with untrusted content.On Android M and above, HTML message channels can be ...转载 2019-01-06 09:21:47 · 507 阅读 · 0 评论 -
CookieSyncManager与CookieManager
Cookie什么是cookie:最简单理解就是由http衍生出来的一种特殊的浏览器的缓存,特点是具有时效性、账户相关性、存储在客户端等。作用:作为客户端的用户认证的通行证,比如服务端可以通过cookie来区分到底是哪个用户。Android中Cookie的管理相关:说到cookie的管理,其实本质上就是数据的存储问题。在早期的cookie是由CookieSyncManager进行管理的,但是在...转载 2018-12-08 13:52:40 · 1227 阅读 · 0 评论 -
WebView使用详解(三)——WebChromeClient与LoadData补充
一、WebChromeClient1、概述(1)、 与WebViewClient的区别很多同学一看到这里有Chrome,立马就会想到google 的Chrome浏览器;这里并不是指Chrome浏览器的意思,而是泛指浏览器,WebView的内部实现并不是完全使用Chrome的内核,而是部分使用Chome内核,其它都是与Chrome不相同的; 我们再来对比下WebViewClient:We...转载 2018-12-08 13:45:46 · 439 阅读 · 0 评论 -
WebView使用详解(二)——WebViewClient与常用事件监听
一、WebViewClient1、概述前面我们虽然实现了交互,但可能我们会有一个很简单的需求,就是在开始加载网页的时候显示进度条,加载结束以后隐藏进度条,这要怎么做? 这些简单的需求,Android开发的老人们肯定都已经想到了,这些有关各种事件的回调都被封装在WebViewClient类中了,在WebViewClient中有各种的回调方法,就是在某个事件发生时供我们监听 使用方法如下:...转载 2018-12-08 12:11:41 · 497 阅读 · 0 评论 -
WebView使用详解(一)——Native与JS相互调用
一直在用WebView,还没有系统的总结过它的用法,下面就系统的总结下,分享给大家一、基本用法1、加载在线URLvoid loadUrl(String url)这个函数主要加载url所对应的网页地址,或者用于调用网页中的指定的JS方法,但有一点必须注意的是:loadUrl()必须在主线程中执行!!!否则就会报错!!!。注意:加载在线网页地址是会用到联网permission权限的,所以需...转载 2018-12-05 15:14:59 · 1655 阅读 · 0 评论 -
获取Android webview的点击元素
经常看见别人的App里webview长按图片就能显示大图,点击号码可以直接找电话,那这是怎么实现的呢WebView的getHitTestResult()的函数可以获取点击页面元素的类型,然后,我们再根据类型进行相应的处理1 HitTestResult result = ((WebView) v).getHitTestResult()HitTestResult 类方法 ...转载 2018-10-27 13:50:22 · 3192 阅读 · 0 评论 -
Android WebView 因重定向无法正常goBack()解决方案
首先说下问题,初始页面为A,点击某个链接跳转到B(http://xxx.com.cn/),B页面重定向到C页面(http://xxx.com.cn/website/index.html)当调用webview.goBack()时,页面回退到B,然后接着会重定向回C页面.这样会导致两个问题:1. 无法回退到webview的初始页面A2. 无法正常退出Activity或者Fragmen...转载 2018-10-27 13:50:56 · 844 阅读 · 0 评论 -
Android之Android WebView常见问题及解决方案汇总
就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了web app与native app之间孰优孰劣的争论. 于是乎,一种混合型的app诞生了,灵活多变的部分,如淘宝商城首页的活动页面,一集凡客诚品中我们都可以见到web 页面与native页面的混合,既利用了web app的灵活易更新,也借助了native app本身的效率.当然,就会用到webview这样的一个...转载 2018-10-27 13:50:40 · 554 阅读 · 0 评论 -
android系统浏览器下载流程
简介当我们用浏览器点开一个下载链接,然后去下载,从宏观上认识,有下载进度的实时更新和界面的跳转。整个过程中,主要涉及到以下过程。浏览器点击下载按钮,浏览器分发下去一个下载请求,跳转界面的同时在DownloadProvider进程中去真正的下载数据以及更新数据库,在界面上监听数据库的变化,去实时更新相关进度。全过程中,Browser进程负责分发下载请求,DownloadProvider进程负责真...转载 2018-10-01 12:57:43 · 10296 阅读 · 0 评论 -
input仅仅输入数字,避免弹出软键盘。使用readonly
1.布局<input id="timeInput" class="timeInput" placeholder="设置秒数" size="7" maxlength="10" onkeyup="this.value=this.value.replace(/\D/g,'')"/>样式.process-text input{ position:转载 2019-01-06 09:50:29 · 559 阅读 · 0 评论 -
webview中back键拦截,弹出窗口进行确认
webView.loadUrl("file:///android_asset/index.html"); //webview界面 webView.setOnKeyListener(new View.OnKeyListener(){ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);...转载 2019-01-06 09:51:21 · 1819 阅读 · 0 评论 -
WebView:onReceiveError的应用与变迁
onReceiveError是WebViewClient提供的方法,用于网页产生错误时进行回调处理。1. 旧版的onReceiveError在API23之前,该方法的签名是:public void onReceivedError(WebView view, int errorCode,String description, String failingUrl);文档是:R...转载 2019-01-06 10:42:01 · 1968 阅读 · 0 评论 -
Android开发利用webview识别H5中图片并保存到相册
前言本文是基于在fragment中执行保存H5图片到本地相册的,相对于在acvitity中执行,削微有一点点复杂,但差别不大,代码中有明显区别Step1:webview添加长按事件private WebView.HitTestResult hitTestResult;webView.setOnLongClickListener(new View.OnLongClickListener(...转载 2019-07-04 07:06:17 · 3171 阅读 · 0 评论 -
Android与JS之JsBridge使用与源码分析
在Android开发中,由于Native开发的成本较高,H5页面的开发更灵活,修改成本更低,因此前端网页JavaScript(下面简称JS)与Java之间的互相调用越来越常见。JsBridge就是一个简化Android与JS通信的框架,源码:https://github.com/lzyzsd/JsBridge我们今天通过一个简单栗子来分析下开源框架JsBridge的源码。栗子的代码我也放在G...转载 2019-02-10 10:00:36 · 456 阅读 · 0 评论 -
Android中JSBridge的原理与实现
Android中的JSBridge是H5与Native通信的桥梁,其作用是实现H5与Native间的双向通信。要实现H5与Native的双向通信,解决如下四个问题即可:1、Java如何调用JavaScript2、JavaScript如何调用Java3、方法参数以及回调如何处理4、通信的数据格式是怎么样的下面从以上问题依次开始讨论:1、Java如何调用JavaScript在And...转载 2019-02-10 09:54:24 · 1646 阅读 · 1 评论 -
Android与JS交互篇--JSBridge的使用
在android日常开发中,大家或多或少都会碰到原生嵌套web页面,大家可以使用传统的方式实现Native与JS的交互,这里就不多介绍了,现在我们简单介绍下网上目前比较流行的已经封装好的框架JsBridge。可参考官网github地址:点击打开链接先看下接下来将要实现的效果图:一、JsBridge的基本概念Android4.4以前,谷歌的webview存在安全漏洞,网站可以通过j...转载 2019-02-10 09:52:56 · 3324 阅读 · 2 评论 -
android使用webview预览png,pdf,doc,xls,txt,等文件
最近有项目有一个需求,就是在线直接预览pdf,doc,xls,txt等文件,ios的webview比较强大,可以直接解析地址,然后预览。但是android的webview就比较差强人意了。当然,打开各种类型的文件,我么可以使用intent来做,但是这个明显跟我们的需求不一致啊,人家ios那边一点击就直接预览了,到了android这边还得先调系统程序,然后在预览。产品既然定了需求,那我们就只有自...转载 2018-09-24 14:42:42 · 6497 阅读 · 0 评论 -
Android WebView shouldInterceptRequest 异步加载
WebView 的 shouldInterceptRequest 可以让我们监听WebView发出的请求并做相应的处理,但有个严重的问题:浏览器的渲染以及资源加载都是在一个线程中,如果在shouldInterceptRequest 处理时间过长,WebView界面就会阻塞,这是非常非常不好的。 本人最近遇到个问题,用WebView做显示,里面有个别特定url的图片需要做特殊的加载处理。所...转载 2019-01-13 14:32:53 · 7362 阅读 · 5 评论 -
Android WebView Video完全详解(第二篇)-H5前端开发人员
需要注意的点 android客户端无法全屏,需要特殊的js处理下,而且js的执行需要前端判断下当前运行<script id="jsbin-javascript"> var videoWrapperElements = document.querySelectorAll('.videoWrapper'); var showFullscreenButton = d...转载 2019-01-08 07:22:31 · 677 阅读 · 0 评论 -
Android WebView Video完全详解(第一篇)-Android开发人员
需要注意的几个点video 播放有两种状态,在原来组件的位置直接播放,全屏播放。IOS客户端对H5 Video标签做了特殊处理,即H5直接用video标签即可,但是Android客户端需要特殊JS处理,所以前端开发需要注意,在下面代码段会划重点。AndroidManifest.xml中Activity需要开加速,需要全屏设置需要设置configChangesVideo可以在Fragmen...转载 2019-01-07 20:34:43 · 1727 阅读 · 0 评论 -
webview 播放video 标签视频 可全屏播放代码
WebViewMovie01Activity.javapublic class WebViewMovie01Activity extends AppCompatActivity { /** * DEMO04: */ HTML5WebView mWebView; public String url = "http://zy.512wx.com/sh...转载 2019-01-07 20:03:41 · 453 阅读 · 0 评论 -
android网页离线保存
将网页保存为离线mht文件,没有找到第三方开源库,网上的例子:http://blog.csdn.net/dongle2001/article/details/2557434http://blog.sina.com.cn/s/blog_3fd24f6c0100ig2r.html当然要想编译通过可能还需要相关的jar包,可以搜到,保存的mht文件格式会有问题,但是目前有问题编码格式有问题,...转载 2019-01-07 07:22:18 · 2638 阅读 · 0 评论 -
Webview截屏三种方式
第一种方式通过调用webview.capturePicture(),得到一个picture对象,根据图像的宽和高创建一个Bitmap,再创建一个canvas,绑定bitmap,最后用picture去绘制。//获取Picture对象Picture picture = wv_capture.capturePicture();//得到图片的宽和高(没有reflect图片内容)int wi...转载 2019-01-07 07:21:15 · 3837 阅读 · 0 评论 -
WebView实现页内文字查找功能
最近闲来无事一直在学习WebView的知识,最近几篇博客也都和这个有关。看了好久WebView的Api,终于找到了一个拿的出手给大家分享(水)的功能了。看标题,就知道是搜索匹配当前网页内的关键词的功能啦,惯例先放下成品图(UI参照了桌面版的Chrome):text.gif效果和桌面版Chrome的页内搜索也是差不多的。下面就介绍下相关相关Api和具体实现流程吧。Apivoid ...转载 2019-01-07 07:20:58 · 2248 阅读 · 0 评论 -
H5缓存机制浅析-移动端Web加载性能优化
1 H5缓存机制介绍H5,即HTML5,是新一代的HTML标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5引入的离线存储,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。H5应用程序缓存为应用带来三个优势:离线浏览 - 用户可在应用离线时使用它们速度 - 已缓存资源加载得更快减少服务器负载 - 浏览器将只从服务器下载更新过或更...转载 2019-01-07 07:20:43 · 2714 阅读 · 16 评论 -
Android WebView 性能轻量优化
0. 前言前面有被用户投诉 APP 流量消耗厉害:[2017-08-08 07:34:40 utc0000] [SettingActivity-null] 严选APP流量消耗太大啦,每次启动都更新,下面流量很大。建议优化流量的消耗,可以对加载画质进行选择。想必淘宝APP,消耗流量可是大多了。[2017-06-01 21:43:36 utc0000] 怎么没用有流量节约模式,一会用了我...转载 2019-01-07 07:20:27 · 1885 阅读 · 8 评论 -
三种方式让 Android WebView 支持文件下载
最近在开发的过程中遇到一个需求,那就是让 WebView 支持文件下载,比如说下载 apk。WebView 默认是不支持下载的,需要开发者自己实现。既然 PM 提出了需求,那咱就撸起袖子干呗,于是乎在网上寻找了几种方法,主要思路有这么几种:跳转浏览器下载 使用系统的下载服务 自定义下载任务有了思路就好办了,下面介绍具体实现。要想让 WebView 支持下载,需要给 WebView 设置...转载 2018-10-01 12:49:36 · 11013 阅读 · 0 评论 -
如何让安卓WebView支持js调用window.open()和window.close()的方法
最近项目中遇到一个webview开发时的问题,web前端开发人员在网页上实现了一个功能。功能是在A html页面,打开一个新的B html页面,然后再B页面中选择一个联系人,把值返回给A页面。做web开发的朋友应该知道,这个需要在A中通过window.open()开启B,在B中选择完毕和调用window.close()关闭B,并且把获取的值传递给A。由于我不是做web开发的,表述可能不是特别对,但...转载 2018-09-15 07:00:40 · 9198 阅读 · 0 评论 -
WebView设置之WebSettings
WebSettings(1)WebSettings是控制WebView的管理者,当WebView第一次被创建的时候,它包含着一些默认设置,这些默认设置可以通过get器来获得.(2)通过WebView的getSetting()可以获得与WebView生命周期相关的WebSetting对象.(3)如果调用getSetting时,WebView已经destory(),那么将会抛出空指针异常....转载 2018-09-15 06:53:35 · 4136 阅读 · 0 评论 -
WebView 缓存机制和资源加载方案
1. Android WebView 存在什么性能问题?Android WebView 里 H5 页面加载速度慢 耗费流量下面会详细介绍。1.1 H5 页面加载速度慢H5 页面加载速度慢的原因下面会详细介绍:1.1.1 渲染速度慢前端H5页面渲染的速度取决于 两个方面:Js 解析效率Js 本身的解析过程复杂、解析速度不快 & 前端页面涉及较多 JS 代码...转载 2018-05-23 18:52:04 · 4548 阅读 · 0 评论 -
Android WebView 使用漏洞
1. 类型WebView中,主要漏洞有三类:任意代码执行漏洞 密码明文存储漏洞 域控制不严格漏洞2. 具体分析2.1 WebView 任意代码执行漏洞出现该漏洞的原因有三个:WebView 中 addJavascriptInterface() 接口 WebView 内置导出的 searchBoxJavaBridge_对象 WebView 内置导出的 accessibi...转载 2018-05-23 18:50:25 · 134 阅读 · 0 评论 -
Android WebView与 JS 的交互方式
1. 交互方式总结Android与JS通过WebView互相调用方法,实际上是:Android去调用JS的代码 JS去调用Android的代码二者沟通的桥梁是WebView对于Android调用JS代码的方法有2种:通过WebView的loadUrl() 通过WebView的evaluateJavascript()对于JS调用Android代码的方法有3种:通过We...转载 2018-05-23 18:47:07 · 163 阅读 · 0 评论 -
Webview使用攻略
1. 简介WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4.4后直接使用了Chrome。2. 作用显示和渲染Web页面 直接使用html文件(网络上或本地assets中)作布局 可和JavaScript交互调用WebView控件功能强大,除了具有一般View的属性和设置外,...转载 2018-05-23 18:39:38 · 158 阅读 · 0 评论 -
Android Web Apps Using Android WebView
An Android web app is an application that uses the AndroidWebViewcomponent to render part of the Android app's GUI. TheWebViewcomponent is a full-fledged browser implemented as aViewsubclass so ...转载 2018-05-23 18:35:09 · 676 阅读 · 0 评论