学习android肯定会涉及到js交互的问题,没有做过这方面项目的android人员或者android学习者可能在面对这个问题的时候有些萌逼,因为本人公司大量的android都涉及到和H5的交互式开发,所以总结一下js的使用方法。
以webview为例,因为现在Crosswalk的使用也非常流行,webview会涉及到很麻烦的适配问题,以及硬件加速什么的,Crosswalk则没有适配方面的压力,但是会导致打包非常大,再者Crosswalk还有一些cpu不支持,两者各有千秋吧。
开始正题:
一,H5调用Android的方法:
在设置webview时,必须要设置如下

WebSettings settings = webView.getSettings();webView.addJavascriptInterface(this, "android");settings.setJavaScriptEnabled(true);

this表示在本类中书写android方法,防止代码混乱也可以在内部类中写,”android“表示这是android的方法,区别于ios

wvContent.addJavascriptInterface(new WebViewActivity(), "android");

表示方法会写在WebViewActivity.class内部类中,android方法的书写

 @JavascriptInterface public void toUserInfoActivity() {         RouteManager.getInstance().toUserInfoActivity(MainActivity.this);}

这里只是简短的页面跳转功能,这里的关键就是@JavascriptInterface,如果没有写的话,方法就不会被识别
H5是如何调用的呢?请看下面代码

function goback(){    var  browser = device();    if (browser.versions.android) { window.android.goBack(); }else if(browser.versions.ios || browser.versions.iPhone || browser.versions.iPad){ window.location = 'ios://webGoBack'; }}

这里就能很清楚的看到调用的是android的goback()方法。
二,android调用H5的方法
交互式开发也需要经常去调用方法,这个很简单,首先说一下调用必须是在web页面去调用,android原生界面是调不到的。
调用webview的loadurl()方法就行了

 if (flag.equals("0")) {          webView.reload();                       }  else if (flag.equals("1")) {                     webView.loadUrl("javascript:uploadImgSrc('" + id + "','" + imageurl + "')");                    } else if (flag.equals("2")) {                        webView.loadUrl("javascript:uploadAuditImg('" + imageurl + "')");                    }

这是我项目中的一段交互代码,来分析一下,webview调用loadurl()方法,里面必须是“javascript:方法名(‘“+参数+”’)”这种格式才行,嗯很简单吧,格式是调用的关键,嗯讲的很浅显,希望能有所帮助。

更多相关文章

  1. 从零开始--系统深入学习android(实践-让我们开始写代码-Android框
  2. 经典Android系统源代码
  3. Android防止内存溢出浅析/应用自动更新功能的代码实现
  4. android待机详细结合代码分析(二)
  5. 用fastboot大刷Android ~换个方法刷android手机
  6. android与linux内核对比--《Android系统源代码情景分析》试读
  7. [Android]ScrollView和ListView套用冲突的解决方法
  8. Android页面去掉标题全屏的方法-第一次用安卓试试看

随机推荐

  1. Android(安卓)EditText的使用及值得注意
  2. Android批量打包-如何一秒内打完几百个ap
  3. Android UI设计,google官方
  4. Android Studio中Module的build.gradle详
  5. [置顶] Android OOM与 leak window
  6. android实现discuz论坛的登录
  7. Android以及ios相关的测试 心得
  8. 蜂窝教育:Android影响在扩大,现在需把握先
  9. android 4.2.1 一种高效log打开方式
  10. 01 Android应用的构成 四大组件 Activity