PS:一篇短小的webView文章,作为对于之前webView总结的补充。
了解更多android的知识可以看笔者的其他博客哟~
Android–关于webView
零散知识点就用⚡️图标代替吧。
⚡️webView组件本身就是一个浏览器实现,WebView基于Chromium内核实现。
第一节:使用WebView浏览网页的常用方法
常用方法:
⚡️goBack():后退
⚡️goForward():前进
⚡️loadUrl(String url):加载指定URL对应的网页。
⚡️boolean zoomIn():放大网页
⚡️boolean zoomOut():缩小网页
第二节:WebView与HTML 5混合开发
WebView提供了一个配套的WebSettings工具类,用于管理WebView选项设置。
WebView提供了addJavascriptInterface(Object object,String name)方法:用于把object对象暴露成javaScript中的name对象.
⚡️总结在WebView中JavaScript中调用Android方法的步骤:
1.调用WebView关联的WebSetting的setJavaScriptEnabled(true)启用JavaScript调用功能.
2.使用addJavascriptInterface(Object object,String name)方法将object对象暴露给JavaScript脚本
3.在JavaScript脚本中通过刚才暴露的name对象调用Android方法.
白话总结:就是可以让在webView页面可以调用Android的一些方法,比如dialog,Toast…这种
<input type="button" value="调用android方法" onclick="name.showToast('...')">
<!-- 这里面这个name就是暴露出来的那个 -->
名词引入:
我们把这种可使用WebView展示HTML 5页面内容,也可解释,执行JS来实现简单动态交互;反过来JS又可调用原生Android API的功能,称之为----------------------------------Hybird(混合)开发模式
补充:暴露类的代码(取自疯狂android讲义)
写完回头看一下…发现内容太少了,我把代码敲一下吧…
//我在这里写的是Android向向HTML暴露的类就是那个Object object
public class MyObject{
private Context mContext; //很核心的东西了,m代表私有(给自己看的)
MyObject(Context c){
mContext = c;
}
@JavascriptInterface //这个注解表示这个方法会暴露给JavaScript脚本调用
public void showToast(String name){
Toast.makeText(mContext,"输出内容",Toast.LENGTH_LONG).show();
}
@JavascriptInterface
public void showList(){
//显示一个普通的列表对话框
new AlertDialog.Builder(mContext).setTitle("标题名称").setItems(new String[]{"列1","列2"},null).setPositiveButton("确定",null).create().show();
}
}