WebSettings webSetting = webView.getSettings();
// 支持JavaScript
webSetting.setJavaScriptEnabled(true);
// 设置可以访问文件s
webSetting.setAllowFileAccess(true);
// 告诉javascript来自动打开的窗口。这适用于JavaScript函数的窗口,open()。
webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
// 支持缩放
webSetting.setSupportZoom(true);
// 是否禁止是网络加载数据
webSetting.setBlockNetworkLoads(false);
// 设置是否支持多窗口
webSetting.setSupportMultipleWindows(true);
// 是否开启本地DOM存储
webSetting.setDomStorageEnabled(true);
// 设置不缓存
webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
// 阻塞加载图片
webSetting.setBlockNetworkImage(false);
// 支持启用插件
webSetting.setPluginState(WebSettings.PluginState.ON);
// 设置任意比较缩放为真
webSetting.setUseWideViewPort(true);
// 设置WebView加载页面的模式
webSetting.setLoadWithOverviewMode(true);
// 控制页面显示布局
// NARROW_COLUMNS:可能的话使所有列的宽度不超过屏幕宽度
// NORMAL:正常显示不做任何渲染
// SINGLE_COLUMN:把所有内容放大webview等宽的一列中
webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
//禁止用地理定位
webSetting.setSaveFormData(true);
// 是否启动地理定位
webSetting.setGeolocationEnabled(true);
// 设置定位的数据库路径
webSetting.setGeolocationDatabasePath("/data/data/org.itri.html5webview/databases/");
onLoadResource() // 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。 shouldOverrideUrlLoading //在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。 onPageStart //这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。 onPageFinish //在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关闭loading 条,切换程序动作。 onReceiveError // (报告错误信息) onReceivedHttpAuthRequest ()//(获取返回信息授权请求)
onCloseWindow() //关闭WebView onCreateWindow() onJsAlert //WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出) onJsPrompt onJsConfirm onProgressChanged //可以根据加载进度设置进度条 onReceivedIcon //可以获取URL icon onReceivedTitle //可以获取URL title
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (TextUtils.isEmpty(url))
return true;
if (url.startsWith("tel:")) {
PhoneDialog callDialog = new PhoneDialog(WebViewActivity.this, url);
callDialog.disDialog();
callDialog.callPhone();
callDialog.show();
return true;
}
return true;
}
// 注入js函数监听
private void addImageClickListner() {
// 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,函数的功能是在图片点击的时候调用本地java接口并传递url过去
webView.loadUrl("javascript:(function(){" +
"var objs = document.getElementsByTagName(\"img\"); " +
"for(var i=0;i<objs.length;i++) " +
"{"
+ " objs[i].onclick=function() " +
" { "
+ " window.imagelistner.openImage(this.src); " +
" } " +
"}" +
"})()");
}
// js通信接口
public class JavascriptInterface {
private Context context;
public JavascriptInterface(Context context) {
this.context = context;
}
@android.webkit.JavascriptInterface
public void openImage(String img) {
Toast.makeText(context,img,Toast.LENGTH_SHORT).show();
}
}
//上述两个方法实现了给图片添加点击事件,我们还需要对webview进行设置以及注入
@SuppressLint({"JavascriptInterface", "NewApi"})
@Override
public void onPageFinished(WebView view, String url) {
view.getSettings().setJavaScriptEnabled(true);
super.onPageFinished(view, url);
addImageClickListner();// 页面加载完成之后,添加监听图片的点击js函数
}
//对WebView进行设置
webView.addJavascriptInterface(new JavascriptInterface(this), "imagelistner");
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有