WebView 加载网页和java 与js交互
[mw_shl_code=java,true]WebView是一个可以显示网页的控件。 需求: 通过WebView加载assets下的html文件。 实现页面的缩放。 向menu键添加:前进、后退和刷新,实现对网页的操作 点击网页中的链接,仍然使用本WebView浏览器,而非调用系统的浏览器 网页中有button,点击button,调用android的Toast 点击WebView隐藏地址栏和button,点击menu键显示地址栏和button。 WebView加载网页的方式 WebView webview = (WebView)findViewById(R.id.webview); webview.loadUrl(" http://192.168.1.33:8080/ ");----访问本地服务器(如tomcat)的网页。 webview.loadUrl("http://www.baidu.com");------访问网络的的网页 webview.loadUrl(" file:///android_asset/test.html ");---------访问本工程下assets下的html文件。。。。注意: file:///android_asset/是固定写法。 添加权限:“android.permission.INTERNET” WebView的常用方法(介绍的是方法的作用,没有写参数,具体的方法使用在下面的示例中) webview.setWebChromeClient();该方法可以处理进度条对话框等。 webview.setOnTouchListener();WebView设置触摸事件,比如我触摸屏幕时,可以隐藏地址栏等操作。 webview.setWebViewClient(WebViewClient client);设置该方法后,一旦你点击网页中的链接,不会去调用系统的浏览器,而是仍然使用当前的WebView浏览器。实现参数的匿名内部类 覆盖匿名内部类的方法 shouldOverrideUrlLoading(WebView view, String url),在该方法view.load(url); onPageStarted():在网页加载前可以做的一些操作,比如加载网页需要一些时间,那么我们就让这段时间显示进度条或提示一句话"正在加载中" onPageFinished():在网页加载后可以做的一些操作,比如关闭进度条。 WebSettings settings = webview.getSettings():就是WebView浏览器的一些设置。 设置网页的缩放:settings.setBuiltInZoomControls(true);也就是放大和缩小网页。 settings.setJavaScriptEnabled(true):可以让android和html中的javascript进行交互。 返回键:当我们打开多个Activity,一旦点击返回键,就直接退出WebView浏览器了。然而这不是我们想要的结果,我们想要的是一点击返回键,我们退回上一个页面。这时我哦们就需要重写onKeyDown()方法。 ------7,8,9三条选看,是关于menu键的内容,网页的前进、后退和刷新------- 点击menu键:我们添加几个menu,实现网页的前进 后退和刷新功能。onCreateOptionsMenu(); 为menu的item添加点击事件,实现前进,后退和刷新功能的具体实现方法。 点击一次menu,执行一次的方法:onPrepareOptionMenu() android与javascript的交互:(在javascript中调用android代码) 背景:WebView加载了一个带button的html,我想点击该按钮调用android的吐司。 html代码:test.html的内容(html是非严谨的,因此如下直接复制就可以) <button>call java</button> <script type="text/javascript"> function demoTest(){ window.demo.demoTest("hello android i am javaScript"); } </script> android内必须添加的代码: //可以让android与javascript进行交互 settings.setJavaScriptEnabled(true); //让javascript调用java代码时,需要添加如下android代码 webview.addJavascriptInterface(new Object(){ public void demoTest(String msg){ showToast(msg); } }, "demo"); public void showToast(String str){//弹出吐司的方法 Toast.makeText(MainActivity.this, str, 0).show(); } 流程概述: 点击按钮: 执行:button的点击事件onclick="demoTest();" 点击事件demoTest();---->调用javascript代码的方法,执行window.demo.demoTest("hello android i am javaScript") 然后调用:android的"demo"接口的方法:public void demoTest(String msg){ showToast(msg); } showToast(msg),调用弹出吐司方法 这就是点击button调用android代码 关于android与javascript的直白理解:通过 settings.setJavaScriptEnabled(true); 方法设置android和javascript可以交互,在android中通过 webview.addJavascriptInterface(参数一:参数二) 方法 定义一个接口名称(参数二),通过该接口名称可以在javascript中调用该接口代表的对象的方法(参数一)。更啰嗦的说就是:参数一:new Object(){ public void demoTest(String msg){ showToast(msg); }定义了一个匿名内部类,该匿名内部类中定义了一个方法demoTest(String msg)。参数二:为该匿名内部类其的名字,通过该名字可以调用匿名内部类中定义的方法,并且必须是在javasrript中调用:调用方式:window.参数二.参数一方法名(参数) 在java中调用javascript代码: 首先需要在html中有script代码块,并且在script中定义了方法。 我们需要做的就在java中调用javascript中的方法 如何调用:WebView.loadUrl("javascript:方法名"); 源码:test.html-------------该文件一定要放到assets下 布局文件:********************************************************8 android代码:-----------------------******************************************** import android.app.Activity; public class MainActivity extends Activity { private WebView webview; public void showToast(String str){ //为menu裁断添加item选中事件 default: //在java中调用javascript中的方法 |
WebView 加载网页和java 与js交互的更多相关文章
- WebView 加载网页 加载资源 总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Android中Http加载如何得到Cookie和 WebView 加载网页如何得到的Cookie
最近做项目在手机端登录Http请求和 WebView 记载登录获取Cookie信息,可查看Cookie信息. 如图: Http请求获取Cookie信息: public static String re ...
- Flutter ------- WebView加载网页
在Flutter 加载网页?也是有WebView的哦,和Android一样 1.添加依赖 dependencies: flutter_webview_plugin: ^0.2.1+2 2.导入库 im ...
- iOS之webview加载网页、文件、html的方法
UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf.word.doc 等等文件 生成webview 有两种方法,1.通过storyboard 拖拽 2.通过a ...
- webview加载网页加载不出来
1.webView.loadUrl(picTargetUrl); 写在最前面. 1.在无线城市迷你版的项目,用webview去loadUrl的时候出现加载的现象. url 地址是 http://go. ...
- WebView加载网页文件
转自:http://www.2cto.com/kf/201108/101518.html WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页,实 ...
- WebView 加载网页返回后,jsp界面数据消失(一个斜杆引起来的风波)
http://ip:port//interface/app/index.jsp 如果不小心就会把,port后面的//两个斜杆给忽略... 当有两个斜杆时,webview仍可以将网页,正常加载.但是数据 ...
- Android WebView 加载网页
通过Android 中 WebView 控件加载HTML5 页面,这是实现Android 混合开发的基础. 选择加载的网页可以是本地,也可用使远程的.需要添加访问互联网的权限:<uses-per ...
- Android使用Webview加载网页
安卓使用Webview来加载和显示网页内容,首先在layout文件中定义Webview <?xml version="1.0" encoding="utf-8&qu ...
随机推荐
- js获取URL中指定的值
function getSearchString(key) { // 获取URL中?之后的字符 var str = location.search; str = str.substring(1,str ...
- Python并发编程-协程
利用Greenlet模块在多线程之间切换 from greenlet import greenlet def eat(): print('eating start') g2.switch() prin ...
- python并发编程-线程池
from concurrent.futures import ThreadPoolExecutor import time def func(n): time.sleep(2) print(n) re ...
- 【欧拉回路】UVA - 10054 The Necklace
题目大意: 一个环被切割成了n个小块,每个小块有头尾两个关键字,表示颜色. 目标是判断给出的n个小块能否重构成环,能则输出一种可行解(按重构次序输出n个色块的头尾颜色).反之输出“some beads ...
- FastReport.Net使用:[21]表格(Table)控件
对表格控件的一些常用操作 合并单元格:选择需要合并的单元格(按住Shitf多选),然后在右键菜单中选择[合并单元格]. 2.删除/插入行 鼠标移到在行头,当鼠标状态变为向右的箭头时点击 ...
- 常用的JVM配置参数
一.Trace 跟踪参数 在Eclipse中,如何打开GC的监控日志 选择菜单栏Run -> Run Configurations -> Java Application -> 选择 ...
- luoguP1354房间最短路问题
判断两点间连通性,建图跑floyed #include<bits/stdc++.h> using namespace std; ; struct node { ],x; }q[N];dou ...
- 「学习笔记」wqs二分/dp凸优化
[学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \l ...
- 【贪心】【高精度】zoj3987 Numbers
题意:给你一个数n,让你找m个非负整数,使得它们的和为n,并且按位或起来以后的值最小化.输出这个值. 从高位到低位枚举最终结果,假设当前是第i位,如果m*(2^i-1)<n的话,那么说明这一位如 ...
- 【BFS】【枚举】HihoCoder - 1251 - The 2015 ACM-ICPC Asia Beijing Regional Contest - C - Today Is a Rainy Day
题意:给你两个只由1~6组成的串,问你B串至少要经过几次操作变成A串. 一次操作要么选择一个种类的数,将其全部变成另一种类:要么选择一个数,将其变为另一个数. 可以证明,一定先进行一定数量的第一种操作 ...