1.Android中打开本地的HTML
Android中打开本地的HTML
初始化WebView,加载本地的Html文件
javaMethod = new JavaMethod(this);
webView = new WebView(this);
WebSettings settings = webView.getSettings();
settings.setDomStorageEnabled(true);
settings.setJavaScriptEnabled(true);
settings.setBlockNetworkImage(false);
webView.setWebViewClient(javaMethod.getWebViewClient());
webView.setWebChromeClient(javaMethod.getWebChromeClient());
webView.addJavascriptInterface(javaMethod, "android");
frameLayout.addView(webView);
// webView加载一个网页
webView.loadUrl("file:///android_asset/test_js.html");
js调用native
1. 借助WebView.addJavascriptInterface实现H5与Native通信
WebView的addJavascriptInterface方法允许Natvive向Web页面注入Java对象,之后,在js中便可以直接访问该对象,使用@JavascriptInterface注解的方法。
public class JavaMethod {
private MainActivity mainActivity;
private Handler uiHandler;
public JavaMethod(MainActivity mainActivity) {
this.mainActivity = mainActivity;
uiHandler = new Handler(Looper.getMainLooper());
}
@JavascriptInterface
public void JsToJavaInterface(final String param) {
uiHandler.post(new Runnable() {
@Override
public void run() {
mainActivity.setTextShow("from JavaInterface: " + param);
}
});
}
}
在前端的js代码中,是可以直接通过mJsMethodApi.callNative(jsonString)通知Native的,而且通过addJavascriptInterface注入的对象在H5的任何地方都可以调用,不存在注入时机跟注入失败的问题,在H5的head里调用都没问题
<html>
<head>
<meta http-equiv="Content-Type" charset="UTF-8"/>
<script type="text/ja

本文详细介绍了在Android中如何使用WebView加载本地HTML,包括通过addJavascriptInterface实现JavaScript与Java的交互,利用shouldOverrideUrlLoading拦截URL,以及通过onJsAlert等方法处理JavaScript提示。同时,文章探讨了WebView的性能优化策略,如提前初始化WebView,本地缓存资源,以及利用setBlockNetworkImage进行图片延迟加载等,以提升H5页面加载速度。
最低0.47元/天 解锁文章
282





