Android(安卓)中webview与原生Java的 交互以及网页JS 与原生的交互
16lz
2021-12-04
# # 首先明确一点 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(安卓)技术-- 图形系统详解
- 带weight的LinearLayout嵌套RecyclerView导致RecycleView执行多
- android:launchMode="singleTask" intent获取到的值没有更新
- (转载)再谈Android(安卓)AsyncTask
- Android(安卓)VideoView设置静音,Android(安卓)设置VideoView静
- android WebView 开发指栏
- Android单选框基本应用方式
- Android架构分析之LOG模块
- 【Android(安卓)应用开发】Android(安卓)开发 之 JNI入门 - NDK