效果图
项目结构
核心代码:
JavaToJSActivity中
activity_java_and_js.xml中package com.zhh.android; import android.app.Activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; /** * java调js */ public class JavaToJSActivity extends Activity implements View.OnClickListener { private Button btnDiaoYong; private WebView wvNet; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_java_and_js); findViews(); initWebView(); } /** * 初始化控件 */ private void findViews() { btnDiaoYong = (Button)findViewById( R.id.btnDiaoYong ); wvNet = (WebView)findViewById( R.id.wvNet ); btnDiaoYong.setOnClickListener( this ); } /** * java调js */ @Override public void onClick(View v) { if ( v == btnDiaoYong ) { // 调用JavaAndJavaScriptCall.html中javaCallJs(arg)函数 wvNet.loadUrl("javascript:javaCallJs(" + "'" + "java调js成功" + "'" + ")"); } } private void initWebView(){ WebSettings webSettings = wvNet.getSettings(); //设置支持javaScript脚步语言 webSettings.setJavaScriptEnabled(true); //支持双击-前提是页面要支持才显示 // webSettings.setUseWideViewPort(true); //支持缩放按钮-前提是页面要支持才显示 webSettings.setBuiltInZoomControls(true); //设置客户端-不跳转到默认浏览器中 wvNet.setWebViewClient(new WebViewClient()); //加载 main目录下assets下JavaAndJavaScriptCall.html wvNet.loadUrl("file:///android_asset/JavaAndJavaScriptCall.html"); } }
JavaAndJavaScriptCall.html中<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".JavaToJSActivity" android:orientation="vertical" > <Button android:id="@+id/btnDiaoYong" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="java调js" /> <WebView android:id="@+id/wvNet" android:layout_width="match_parent" android:layout_height="match_parent"> </WebView> </LinearLayout>
AndroidManifest.xml加权限<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <script type="text/javascript"> function javaCallJs(){ document.getElementById("content").innerHTML += "<br\>java调用了js无参函数"; } function javaCallJs(arg){ document.getElementById("content").innerHTML = ("欢迎:"+arg ); } function showDialog(){ alert("谷粉们你好,我是来自javascript"); } </script> </head> <body> <div align="left" id="content"> 谷粉</div> <div align="right">光临尚硅谷</div> <p><img src="http://atguigu.com/images/logo.gif"></p> <input type="button" value="js调java" οnclick="window.Android.showToast()" /> </body> </html>
http://download.csdn.net/download/zhaihaohao1/9980957<uses-permission android:name="android.permission.INTERNET" />注:例子演示的是本地的h5代码,链接也一样
源码下载:
http://download.csdn.net/download/zhaihaohao1/9980957