文章目录
- 最近在学H5开发,想了解Android调用JS的请移步Android调用 Webview的JS方法
-
- 在src/main/下创建一个文件夹assets,里面添加一个javascript.html文件,内容如下; <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>emperinter</title> <script> function callAndroid(){ // 由于对象映射,所以调用test对象等于调用Android映射的对象 // 这里的test即为 mWebView.addJavascriptInterface(new AndroidtoJs(),"test");的传参 // AndroidtoJS类对象映射到js的test对象 // hello即位我们写的接口 // 里面得参数即为我们要传递给Android得参数 test.hello("JS里面的参数"); } </script> </head> <body> <!--点击按钮则调用callAndroid函数--> <div align="center"> <button class="font-size:32px;" type="button" id="button1" onclick="callAndroid()">调用安卓方法</button> </div> </body> </html>
- 接口 我准备在这里面添加一个EditText来尝试直观感觉,结果不行。看来自己类等等的知识得抽空补补了! //继承自Objiect类 public class AndroidtoJs extends Object{ @JavascriptInterface public void hello(String msg) { //System.out.println("Js调用了Android的hello方法!"); System.out.println(msg); } } MainActivity public class MainActivity extends AppCompatActivity { WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = (WebView) findViewById(R.id.MainWebView); WebSettings webSettings = mWebView.getSettings(); //设置Jscript交互的权限 webSettings.setJavaScriptEnabled(true); // 通过addJavascriptInterface()将Java对象映射到JS对象 // 参数1:Javascript对象名 // 参数2:Java对象名 mWebView.addJavascriptInterface(new AndroidtoJs(),"test");//AndroidtoJS类对象映射到js的test对象 // 加载JS代码 // 格式规定为:file:///android_asset/文件名.html mWebView.loadUrl("file:///android_asset/javascript.html"); } }
- https://www.jianshu.com/p/345f4d8a5cfa
最近在学H5开发,想了解Android调用JS的请移步Android调用 Webview的JS方法
最近在学H5开发,想了解Android调用JS的请移步Android调用 Webview的JS方法
在src/main/下创建一个文件夹assets,里面添加一个javascript.html文件,内容如下;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>emperinter</title>
<script>
function callAndroid(){
// 由于对象映射,所以调用test对象等于调用Android映射的对象
// 这里的test即为 mWebView.addJavascriptInterface(new AndroidtoJs(),"test");的传参
// AndroidtoJS类对象映射到js的test对象
// hello即位我们写的接口
// 里面得参数即为我们要传递给Android得参数
test.hello("JS里面的参数");
}
</script>
</head>
<body>
<!--点击按钮则调用callAndroid函数-->
<div align="center">
<button class="font-size:32px;" type="button" id="button1" onclick="callAndroid()">调用安卓方法</button>
</div>
</body>
</html>
在src/main/下创建一个文件夹assets,里面添加一个javascript.html文件,内容如下;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>emperinter</title>
<script>
function callAndroid(){
// 由于对象映射,所以调用test对象等于调用Android映射的对象
// 这里的test即为 mWebView.addJavascriptInterface(new AndroidtoJs(),"test");的传参
// AndroidtoJS类对象映射到js的test对象
// hello即位我们写的接口
// 里面得参数即为我们要传递给Android得参数
test.hello("JS里面的参数");
}
</script>
</head>
<body>
<!--点击按钮则调用callAndroid函数-->
<div align="center">
<button class="font-size:32px;" type="button" id="button1" onclick="callAndroid()">调用安卓方法</button>
</div>
</body>
</html>
- 接口
我准备在这里面添加一个EditText来尝试直观感觉,结果不行。看来自己类等等的知识得抽空补补了!
//继承自Objiect类
public class AndroidtoJs extends Object{
@JavascriptInterface
public void hello(String msg) {
//System.out.println("Js调用了Android的hello方法!");
System.out.println(msg);
}
}
- MainActivity
public class MainActivity extends AppCompatActivity {
WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.MainWebView);
WebSettings webSettings = mWebView.getSettings();
//设置Jscript交互的权限
webSettings.setJavaScriptEnabled(true);
// 通过addJavascriptInterface()将Java对象映射到JS对象
// 参数1:Javascript对象名
// 参数2:Java对象名
mWebView.addJavascriptInterface(new AndroidtoJs(),"test");//AndroidtoJS类对象映射到js的test对象
// 加载JS代码
// 格式规定为:file:///android_asset/文件名.html
mWebView.loadUrl("file:///android_asset/javascript.html");
}
}
我准备在这里面添加一个EditText来尝试直观感觉,结果不行。看来自己类等等的知识得抽空补补了!
//继承自Objiect类
public class AndroidtoJs extends Object{
@JavascriptInterface
public void hello(String msg) {
//System.out.println("Js调用了Android的hello方法!");
System.out.println(msg);
}
}
public class MainActivity extends AppCompatActivity {
WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.MainWebView);
WebSettings webSettings = mWebView.getSettings();
//设置Jscript交互的权限
webSettings.setJavaScriptEnabled(true);
// 通过addJavascriptInterface()将Java对象映射到JS对象
// 参数1:Javascript对象名
// 参数2:Java对象名
mWebView.addJavascriptInterface(new AndroidtoJs(),"test");//AndroidtoJS类对象映射到js的test对象
// 加载JS代码
// 格式规定为:file:///android_asset/文件名.html
mWebView.loadUrl("file:///android_asset/javascript.html");
}
}


