Android Webview 基本使用总结

     前言: 在目前Android开发市场中,越来越多公司的 APP项目使用Android WebView加载H5 进行混合开发, 有时不仅仅是简单的展示几个网页,还需要本地Android 原生原生控件 与HTML中的JavaScript进行交互, Android也对交互做了很好的封装,所以很容易实现例如:给网页进行点赞,提交评论,也 有点击网页中的方法去调用Android原生的方法等。

1添加权限:AndroidManifest.xml 中添加 :android.permission.INTERNET, 否则会出Web page not available错误,                                              2在要Activity中生成一个WebView组件实例:网页中的方法去调用Android原生的方法。

生成一个WebView组件(两种方式): 

 //方式1:直接在在Activity中生成 :WebView webView = new WebView(this), //方法2:在Activity的layout文件里添加webview控件:WebView webview = (WebView)findViewById(R.id.webView1);去调用Android原生的方法。

3设置WebView常用基本信息:

设置详解参考:http://blog.csdn.net/xueshanfeihu0/article/details/78443461

4如何加载WevView要显示的网页?

              / /例如:加载本地 assets文件夹下的test.html页面 : mWebView.loadUrl("file:///android_asset/test.html")                                                                  //例如:加载网页mWebView.loadUrl("http://www.baidu.com")

5给WebView添加一个事件监听对象:如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。给WebView添加一个事件监听对象(WebViewClient),并重写其中的一些方法,注意:mWebView.setWebViewClient(newWebViewClient() {}要放到 加载网页前,要不可能导致网页内点击链接无法跳转到下个H5 网页

6点击系统“Back”键问题:如果用Webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出整个H5页面关闭掉,需要在当前Activity中处理并消费掉该Back事件。覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法。修改如下:

7.Android如何调用H5中的方法:

  ①调用H5中无参无返回值的方法*

   直接可以调用mWebView.loadUrl("JavaScript:show()"); H5 test.html 中show()方法如下。


调用H5中带参数的方法*

   当调用H5中带参数的方法时,势必要传入一个字符串,当传入固定字符串时,用单引号括起来即可;当传入变量名时,需要用到转义符。

                 mWebView.loadUrl("JavaScript:alertMessage(‘测试’)");

代码截图 H5截图

调用H5中带返回值的方法*

可以调用mWebView.evaluateJavascript()方法,该方法只在安卓4.4以上版本适用,图为Android调用H5中带返回值的方法。

代码截图 H5页面截图

3、H5如何调用android中的方法

H5调用Android里的方法,相对复杂一些,双方具体操作如下:*

Android需要做什么呢?

新建一个类,写提供给H5操作的方法,并规定别名。这里新建的class为Jsinteration,方法为getReadAndriod(),规定的别名为android。如图


H5页面调用如下调用格式为 window.别名.android代码中的方法名(getReadAndriod()) ,此示例中我们用的别名为android,方法名为getReadAndriod()。而get()是在H5页面button ,onclick调用的,具体看后面源码

好了,webview 基本使用知识就这些,希望总结的知识点对大家有帮助,觉得好点个赞^^! 源码贴出如下点击查看:

源码



作者:Mr_雪山

链接:http://www.jianshu.com/writer#/notebooks/4864286/notes/19202598

來源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

更多相关文章

  1. Android中如何使用JUnit进行单元测试
  2. Qt on Android:添加分享功能
  3. android 面试题经典
  4. Android(安卓)Framework 框架系列之 PhoneWindowManager
  5. Android(安卓)Intent的几种用法全面总结
  6. Android(安卓)MediaPlayer的核心原理
  7. Android(安卓)Service——在子线程中更新UI
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android大图裁剪解决办法
  2. Android(安卓)studio设置requestWindowFe
  3. 学习音频之android中AudioRecord采集音频
  4. Android(安卓)java Broadcast广播例子,
  5. Android官方的文档中提到了模拟器中设置
  6. Android入门扫盲之二
  7. Android手势处理看这一篇就够了
  8. 基于Android的远程视频监控系统(含源码)
  9. android  打开多个Activity,返回到第一个
  10. adb server is out of date