以前有接触过一下Android H5开发,但后来个人看着没什么用,就放弃了,知道现在(2020年4月8日)我意识到了事情的严重性,很多app都需要用到h5了啊,可我本行并不是写html。。。没办法,时代这样发展,那就这样走吧。
先看效果图吧:

新建一个Android项目,然后创建一个webView控件,配置如下
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);//打开js支持
webView.addJavascriptInterface(new JsInteration(), "android");
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
//然后加载一个html文件,或者是远程文件也可以
webView.loadUrl(urlRemoteLogin); //远程文件
webView.loadUrl("file:///android_asset/files/index.html"); //本地文件,该文件存在于下图文件夹中

然后,为了让html文件能调用得了Java方法,上文提到的别名“android”是必要的,另外还需要一个类。
/** * 提供给H5访问的方法 * 方法前一定要写@JavascriptInterface,否则H5调用不到 */
public class JsInteration {
@JavascriptInterfacepublic String back() { return "Java方法返回当前时间:" + sdf.format(new Date());}@JavascriptInterfacepublic String login(String name, String pwd) { return loginByPwd(name, pwd);}@JavascriptInterfacepublic String register(String name, String pwd) { return registerByNamePwd(name, pwd);}
}
由于编辑器问题,我还是截图吧,一目了然

该类中的方法有自己定义,html中可直接调用,调用方法
window.android.login(name,pwd);
其中android,是我们自己定义的,login()这个方法也是我们自己添加的。
这样就能实现了。
网友评论