之前的博客,Android-WebView与本地HTML (Java调用--->HTML的方法),是在 findViewById(R.id.webview);,来得到WebView, 此博客使用 new WebView(this)方式;
AndroidManifest.xml中配置网络访问权限:
<!-- 网络访问权限 --> <uses-permission android:name="android.permission.INTERNET" />
test2.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- viewport的宽度等于设备宽度,viewport会根据屏幕宽度自动适应,并且对图片和文字进行缩放显示 --> <meta name="viewport" content="initial-scale=1.0" /> <title>Web页面</title> <script type="text/javascript"> function my_function(myname) { document.getElementById("demo").innerHTML = "Java设置我的值名字是:" + myname; } </script> </head> <body> 这是一个html页面,现在在WebView中运行 <p id = "demo"></p> </body> </html>
Activity:
package cn.h5; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.webkit.WebView; /** * Android-WebView与本地HTML (Java调用--->HTML的方法)-(new WebView(this)方式) */ public class MainActivity7 extends Activity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /** * 定义此WebView 用于去展现本地HTML */ webView = new WebView(this); /** * WebView默认是不能够执行javascript * 以下代码是设置>>允许webview能够执行javascript代码 */ webView.getSettings().setJavaScriptEnabled(true); // 这里不需要设置 webView.addJavascriptInterface,是因为JavaScript不调用-->Java的方法 /** * 加载本地的HTML文件 */ webView.loadUrl("file:///android_asset/test2.html"); setContentView(webView); new Handler().postDelayed(new Runnable() { @Override public void run() { addName(324354); } }, 5000); } /** * 给---->>>>JavaScript添加名字 * @param name */ private void addName(int name) { /** * 让WebView去执行JavaScript代码 * 让WebView去执行JavaScript的my_function方法 * * JavaScript方法: * function my_function(myname) { * document.getElementById("demo").innerHTML = "Java设置我的值名字是:" + myname; * } */ webView.loadUrl("javascript:my_function(" + name + ")"); } }
执行结果: