Android:WebView与Javascript交互(相互调用参数、传值)
来源:互联网 发布:国外教育学专业 知乎 编辑:程序博客网 时间:2024/05/18 08:47
Android中可以使用WebView加载网页,同时Android端的Java代码可以与网页上的JavaScript代码之间相互调用。
Activity代码:
//在js中调用本地java方法
webView.addJavascriptInterface(new JsInterface(this), "AndroidWebView");
//添加客户端支持
webView.setWebChromeClient(new WebChromeClient());
/** * Android WebView 与 Javascript 交互。 */ public class MainActivity extends ActionBarActivity { private WebView webView; @SuppressLint({"SetJavaScriptEnabled", "AddJavascriptInterface"}) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webView); webView.setVerticalScrollbarOverlay(true); //设置WebView支持JavaScript webView.getSettings().setJavaScriptEnabled(true); String url = "http://192.168.1.27/js_17_android_webview.html"; webView.loadUrl(url); //在js中调用本地java方法 webView.addJavascriptInterface(new JsInterface(this), "AndroidWebView"); //添加客户端支持 webView.setWebChromeClient(new WebChromeClient()); } private class JsInterface { private Context mContext; public JsInterface(Context context) { this.mContext = context; } //在js中调用window.AndroidWebView.showInfoFromJs(name),便会触发此方法。 @JavascriptInterface public void showInfoFromJs(String name) { Toast.makeText(mContext, name, Toast.LENGTH_SHORT).show(); } } //在java中调用js代码 public void sendInfoToJs(View view) { String msg = ((EditText) findViewById(R.id.input_et)).getText().toString(); //调用js中的函数:showInfoFromJava(msg) webView.loadUrl("javascript:showInfoFromJava('" + msg + "')"); } }
(二)网页代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="zh-cn" /> <title>Android WebView 与 Javascript 交互</title> <head> <style> body {background-color:#e6e6e6} .rect { color:white; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; width:100px; padding:6px; background-color:#98bf21; text-decoration:none; text-align:center; border:none; cursor:pointer; } .inputStyle {font-size:16px;padding:6px} </style> </head> <body> <p>测试Android WebView 与 Javascript 交互</p> <input id = "name_input" class = "inputStyle" type="text"/> <a class = "rect" onclick="sendInfoToJava()">JS调用Java</a> <script> function sendInfoToJava(){ //调用android程序中的方法,并传递参数 var name = document.getElementById("name_input").value; window.AndroidWebView.showInfoFromJs(name); } //在android代码中调用此方法 function showInfoFromJava(msg){ alert("来自客户端的信息:"+msg); } </script> </body> </html>
0 0
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android WebView与JavaScript代码相互调用
- android webview与javascript交互调用
- Android ---- WebView与JavaScript交互调用(1)
- Android ---- WebView与JavaScript交互调用(2)
- android中Webview与javascript的交互(互相调用)
- android中Webview与javascript的交互(互相调用)
- Android中Webview与JavaScript的交互(互相调用)
- Android中Webview与javascript的交互(互相调用)
- android中Webview与javascript的交互(互相调用)
- android中Webview与javascript的交互(互相调用)
- android中Webview与javascript的交互(互相调用)
- Nginx配置详解 二!
- 1059. C语言竞赛(20)
- 第18篇 原版更新到合成项目(二)及证书安放
- 2016赛季总结——关于“死亡回归”,感谢队友
- 简单递推锦集
- Android:WebView与Javascript交互(相互调用参数、传值)
- 判断两个矩形是否相交(C++)
- v4l2视频采集
- 数据库SQL优化大总结之 百万级数据库优化方案
- Android系统源码阅读(17):Android 应用的安装
- matlab读取pcm音频数据
- jQuery图片旋转
- CodeForces 66B - Petya and Countryside(水题)
- php中\r \r\n \t的区别