
本文实例讲述了AndroID编程使用WebVIEw实现与JavaScript交互的方法。分享给大家供大家参考,具体如下:
AndroID中可以使用WebVIEw加载网页,同时AndroID端的Java代码可以与网页上的JavaScript代码之间相互调用。
效果图:
(一)AndroID部分:
布局代码:
<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" androID:focusable="true" androID:focusableIntouchMode="true" androID:orIEntation="vertical" androID:padding="8dp" tools:context=".MainActivity"> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content"> <EditText androID:ID="@+ID/input_et" androID:layout_wIDth="0dp" androID:layout_height="wrap_content" androID:singleline="true" androID:layout_weight="1" androID:hint="请输入信息" /> <button androID:text="Java调用Js" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:onClick="sendInfoToJs" /> </linearLayout> <WebVIEw androID:ID="@+ID/webVIEw" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" /></linearLayout>
Activity代码:
/** * 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>更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android视图View技巧总结》、《Android开发动画技巧汇总》、《Android编程之activity *** 作技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源 *** 作技巧汇总》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android编程使用WebView实现与Javascript交互的方法【相互调用参数、传值】全部内容,希望文章能够帮你解决Android编程使用WebView实现与Javascript交互的方法【相互调用参数、传值】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)