android h5使用缓存_Android与HTMLJS交互入门

0813204176ab59737c80ab09cb04b2c5.png

点击上方蓝字关注我们

c5a55044981e701e63e7b74948388761.png

074d9597b7f3e1580fc5e17f1fdd818b.png

现在的APP里面会嵌套一些h5酷炫的界面,而我们的app就需要和H5进行交互,下面我们就来看看怎么进行具体的交互。

~ Webview的基本设置 

以下是webview的基本设置
WebSettings setting = mWebView.getSettings();
setting.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false
        setting.setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞
        setting.setSupportZoom(true);//是否可以缩放,默认true
        setting.setBuiltInZoomControls(false);//是否显示缩放按钮,默认false
        setting.setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式
        setting.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题
        setting.setAppCacheEnabled(true);//是否使用缓存
        setting.setDomStorageEnabled(true);//DOM Storage
        setting.setDatabaseEnabled(true);
        setting.setAllowFileAccess(true);
        setting.setAppCacheEnabled(true);
        setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); //图片太大
        setting.setDatabasePath(getActivity().getApplicationContext().getCacheDir().getAbsolutePath());
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            setting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
~ 开启log日志 ~

开启打印web的日志设置,可以看到log信息:

webview.setWebChromeClient(new WebChromeClient() {
            public boolean onConsoleMessage(ConsoleMessage cm) {
                LogUtils.e(TAG, "打印web日志------"+cm.message() + " -- From line "
                        + cm.lineNumber() + " of "
                        + cm.sourceId());
                return true;
            }
        });

~ 添加JavascriptInterface ~

mWebView.addJavascriptInterface(new AndroidJavaScript(), "test");

~ AndroidJavaScript ~

public class AndroidJavaScript {
        @JavascriptInterface
        public void testPage() {
            LogUtils.e("test", "testPage");
        }
    }

testPage是和H5约定的名称,以上就是简易的Android和js的交互,具体的细节还需要和H5讨论。

~ HTML简易代码 ~

里面主要有两个按钮,两个JS方法

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<script type="text/javascript">

function AndroidCallJs(){
     document.getElementById("content").innerHTML =
         "
Android调用了JS的无参函数";
}

function AndroidCallJsParam(arg){
     document.getElementById("content").innerHTML =
         ("
"+arg);
}
script>
head>
<body>
HTML Test <br/>
<h1><div id="content">Test div>h1>
<br/>
<input type="button"  value="点击调用Android代码" onclick="window.android.startFunction()" />
<br/>
<input type="button"  value="点击调用Android代码并传递参数" onclick="window.android.startFunction('https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343')"  />
body>
html>

~ Android 的调用方式 ~

// 无参数调用 JS的方法 
webview.loadUrl("javascript:AndroidCallJs()");
//有参调用HTML js方法
webview.loadUrl("javascript:AndroidCallJsParam(" + "'https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343'" + ")");
1ec5b709f2130bb21a7285e5359b3d55.gif爱我,请给我好看

END

我是王子猪,一个可爱、逗逼的程序员

欢迎您把文章分享给其他人,如果您觉得不错,可以动动手指头 关注、点赞 支持一下哦!王子猪十分感谢,祝您天天开心!

1d37d112a8d23a801eb14d8417ef2959.png

8f495db1d51c7012f238b47d7b7e520c.png

Android-View孪生兄弟-SurfaceView

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值