Android 中webview与原生Java的 交互以及网页JS 与原生的交互

# # 首先明确一点 Android 与web 页面也就是网页主要通过Android 的控件 webview 进行交互的
先说 Android 中调用 网页以及与网页交互的JS
加载网页直接用webview加载
代码如下:

 wv.loadUrl("http://192.168.2.180:8080/javaweb/testh5.html");
 public void clicktest(View view){
        wv.loadUrl("javascript:callH5('Android OK !!!')");

    }
    //此处为Android 调用web 页面的JS逻辑
    达成与网页的交互

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
<p id="result">p>
<script type="text/javascript">
    function test() {
        console.log("click()1")
       window.android.showToat("显示Toast");
        console.log("click()2")
    }
    //定义本地方法 效果提供给Android端调用 被调用后将获得参数值
    function callH5(data){
        document.getElementById("result").innerHTML=data;
    }
script>
<button onclick="test()">调用Android 的原生方法button>
body>
html>

主要是JS 调用Android 主要是Android 的webview提供一个JS 接口提供给web 页面JS 代码调用

 wv.getSettings().setJavaScriptEnabled(true);
        wv.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return true;
            }
**
        });
        wv.setWebChromeClient(new WebChromeClient());
      **  *==//这句话是关键与JS中window.android一致==***
        wv.addJavascriptInterface(new JSI(),"android");
private class JSI {
        @JavascriptInterface
        public void showToat(String s){
            Toast.makeText(getApplication(),s,Toast.LENGTH_SHORT).show();

        }
    }

====
Android 中webview与原生Java的 交互以及网页JS 与原生的交互_第1张图片
Android 中webview与原生Java的 交互以及网页JS 与原生的交互_第2张图片
Android 中webview与原生Java的 交互以及网页JS 与原生的交互_第3张图片

你可能感兴趣的:(android,基础复习篇)