HTML(JavaScript)与Android的webView控件相互通信,今天仔细研究才发现,这两者相互调用是非常简单的,只需要在Android里面调用JavaScript的方法,以及在JavaScript里面调用Android里面的方法即可完成,思路很简单,具体执行起来其实也并不复杂,下面是具体的代码,以及代码注释:
HTML代码

        Android端与HTML相互通信    

Android与HTML相互通信示例

<--!h2标签说明-->

Android消息

在此处输入想要发送到Android端的信息
在这里设置一个文本框,用来获取用户输入的文字消息然后应用到js里面进操作
//导包略过public class MainActivity extends Activity {    private WebView webView;    private EditText editText;    private Button button;    private TextView textView;    //定义好所需要的控件    @SuppressLint("JavascriptInterface")    //定义好SuppressLint("JavascriptInterface")    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ByID();        //设置支持JavaScript语言,让WebView支持javascript的动作        webView.getSettings().setJavaScriptEnabled(true);        //交互对象的添加,传入对象在html5界面的javascript中获取,该对象用于两者之间的交互。question,给JavaScript添加一个与之交互的接口,传入一个对象和该对象的名字,在html5端根据这个名字得到对象        //提供一个供h5交互的对象,并给对象标记个名字供js识别        webView.addJavascriptInterface( mUser= new User(), "user");        //自定义实现alert        //要加载的页面        webView.loadUrl("http://10.0.2.2:63343/WWW/PHPwithHTML/test.html");        webView.setWebViewClient(new zzaWebViewClient());    }public void ByID(){    //关联ID    webView = findViewById(R.id.webView);    textView=findViewById(R.id.textView);    button=findViewById(R.id.button);    editText=findViewById(R.id.editText);}    public class User {        //在user类里面写两个方法供js调用        //一定要在每一个方法前面加入 @JavascriptInterface        private String username;       @JavascriptInterface        public String getUsername() {            //此方法直接返回AndroidUI页面里面的文本框的值            return editText.getText().toString();        }        @JavascriptInterface        public void setUsername(String username) {            this.username = username;            //将js里面传过来的值直接添加到UI页面的文本信息之中            textView.append(username+"\n");                Log.i("TAG", username);        }    }    class zzaWebViewClient extends WebViewClient{        //不重新打开系统的浏览器加载网页        @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {            view.loadUrl(url);            return true;        }    }}

效果图:
JavaScript---->Android
Android与HTML JavaScript交互_第1张图片
Android----->JavaScript
Android与HTML JavaScript交互_第2张图片

更多相关文章

  1. 【Android自助餐】Handler消息机制完全解析(二)MessageQueue的队列
  2. Android中String资源文件的format方法
  3. Android消息通信之无所不能的第三方开源项目EventBus
  4. android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象
  5. Android应用程序键盘(Keyboard)消息处理机制分析
  6. android性能测试方法
  7. 【Android开机启动Activity或者Service方法】
  8. Android消息推送实现

随机推荐

  1. window7 android-ndk-r10d 编译ffmpeg 3.
  2. android 学习四 加载图片
  3. Android用户界面 UI组件--TextView及其子
  4. Paint---PathEffect(路径效果)
  5. [Android(安卓)SQLite]数据存储与访问 -
  6. Android(安卓)应用第一次运行时,引导页面
  7. (详解)Eclipse3.6搭建 Android(安卓)2.2
  8. Android(安卓)--启动画面制做 png图片-->
  9. android学习01
  10. Android(安卓)Zxing 扫描条码实现竖屏模