webview笔记
1. 用户上传文件
webChromeClient的onShowFileChooser这个方法,这将打开一个文件选择器,如果要取消这个请求则是调用filePathCallback.onReceiveValue(null)
2. webView调用JS方法
webView调用Js的基本格式是loadurl("JavaScript:method(参数)");
但是如果调用的js方法有值返回,则是如下写法: // 就是调用evaluateJavaScript方法回调
private void evaluateJavaScript(WebView webview){
webview.evaluateJavaScript("js方法名()",new ValueCallback<String>(){
@Override
public void onReceiveValue(String s)
Log.e("",s);
});
}
3. JS调用webView的方法
Java方法使用JavascriptInterface注解
@JavascriptInterface
public void show(string hello){
Toast.makeText().show();
}
注册JavaScriptInterface
webView.addJavaScriptInterface(this,"android");// 这里是做了一个映射,映射到JavaScript的android对象中
JavaScript调用android 方法 弹出对话框
function getFromAndroid(){
window.android.show("hello");
}
如果是调用的android 方法有返回值,则在最后调用的JavaScript处接收值就行了,var result = window.android.method(参数);
3. webView加载优化:
第一种方式尽量使一些资源本地化,因为最快的方式还是从本地读取资源。本地资源放在asset路径下,然后重写webviewClient的webResourceResponseShouldInterceptRequest(Webview webview,WebResourceRequest request)读取本地资源,建立cache controller机制,定期检查资源更新,保证本地资源是最细可用的。
第二种方式就是缓存,首先在websetting里面把相关的缓存设置打开,setAppCacheEnab(),setDomstroageEnable(),setDatabaseEnable(),最重要的设置缓存模式,setCacheModel();
因为不同的网络环境,我们要选择不同的缓存模式,默认情况下是websettings.LOAD_DEFAULT, 所以如果是网络好的情况下使用默认的方式,网络有问题是只能使用缓存的页面LOAD_CATCH_ONLY, 所以这里就要定期接受服务器通知更新缓存
第三种方式,就是前端要做的了,对JS做延迟加载。
webview笔记的更多相关文章
- 【WP8.1】WebView笔记
之前在WP8的时候做过WebBrowser相关的笔记,在WP8.1的WebView和WebBrowser有些不一样,在这里做一些笔记 下面分为几个部分 1.禁止缩放 2.JS通知后台C#代码(noti ...
- Android WebView 笔记
WebView(网络视图)能载入显示载入网页.将网页内容载入到手机client,它使用了WebKit渲染引擎载入显示网页,实现WebView有下面方法: 首先要实如今手机client显示必需要求注冊一 ...
- Android SDK组件:webview笔记
1.安卓手机中内置了一款webkit内核的浏览器,在SDK中封装为WebView组件. 2.该组件可以在自己的应用程序中显示本地或者Internet上的网页,也可以把它当作一个浏览器来时用. 3.We ...
- 【uwp】浅谈China Daily 中划词翻译的实现
学习uwp开发也有一段时间了,最近上架了一个小应用(China Daily),现在准备将开发中所学到的一些东西拿出来跟大家分享交流一下. 先给出应用的下载链接:China Daily , 感兴趣的童鞋 ...
- Xamarin开发笔记—WebView双项事件调用
1.Xamarin调用WebView: 原理:Xamarin.Forms WebView内置方法xx.Eval(..)可以调用到页面里面的js函数. WebView展示的代码如下: var htmlS ...
- 安卓开发笔记——WebView组件
我们专业方向本是JAVA Web,这学期突然来了个手机App开发的课设,对于安卓这块,之前自学过一段时间,有些东西太久没用已经淡忘了 准备随笔记录些复习笔记,也当做温故知新吧~ 1.什么是WebVie ...
- WebView随学笔记
对于WebView而言我们需要掌握的内容是: /** 学习目标:webView * 1).将WebView加入到应用中 * 2).使用WebView加载页面 * 3).获取网络访问 * 4).在Web ...
- Android学习笔记50:使用WebView控件浏览网页
在Android中,可以使用Webview控件来浏览网页.通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示. 图1 运行效果 1.WebView 在使用WebView控件时,首先需要在 ...
- Android开发学习笔记:浅谈WebView(转)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/647456 ...
随机推荐
- 图片输出onerror事件
<img src=".<?php echo $img[0];?>" onerror="this.src='img/zanwu.jpg'" st ...
- web Service试用简例
1.打开文件,选择新建Asp.Net web服务. 2.出现新建页面如下. using System; using System.Collections.Generic; using System.L ...
- UI、ID、UE和GUI,这些都是什么
在网页和应用设计领域中,我们经常会听到人们用这些英文缩写描述设计工作,那么它们各自代表什么含义?具体的工作.方向和区别是什么呢? 下面让我们先来看看它们的英文全称和基本概念. UI(User Inte ...
- PHP 之isset() 与 unset()
isset()用来判断某个变量是否已经被声明,他返回一个boolean类型的值,如果声明则返回true否则返回false.如果变量被声明后,给他赋值为NULL,他也返回false. 如: <?p ...
- MFC中DoDataExchange()的作用
void CDlgSelectCS::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Te ...
- c语言内存模型
文章一.C语言的内存分配模型 1.程序代码区:存放函数体的二进制代码. 2.全局区数据区:全局数据区划分为三个区域.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化 ...
- 黑马程序员_Java其他对象(System,Runtime,Date,Calendar,Marh-Random)
System System类包含一些有用的类字段和方法(都是静态的).它不能被实例化. 在System类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的 ...
- cf500A New Year Transportation
A. New Year Transportation time limit per test 2 seconds memory limit per test 256 megabytes input s ...
- sql sever 模糊查询 除了like还有PATINDEX
返回模式在指定表达式中第一次出现的起始位置:如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零. USE AdventureWorks2012; GO SELECT PATINDEX('%e ...
- 迭代导出word 文档
Map迭代的使用: Map map = new HashMap() ; Iterator it = map.entrySet().iterator() ; while (it.hasNext()) { ...