Android编程使用WebView实现与Javascript交互的方法【相互调用参数、传值】

Android编程使用WebView实现与Javascript交互的方法【相互调用参数、传值】,第1张

概述本文实例讲述了Android编程使用WebView实现与Javascript交互的方法。分享给大家供大家参考,具体如下:

本文实例讲述了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交互的方法【相互调用参数、传值】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1146743.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存