学习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(安卓)NDK 的学习之旅-----JNI LOG 打印(附源码)
  2. Android事件分发机制五:面试官你坐啊
  3. android之调用webservice 实现图片上传下载
  4. Android通过WebView与JS交互的全面方式
  5. Android逆向之旅---Android中的sharedUserId属性详解
  6. [better practice系列]Android处理好activity正确情况下的生命周
  7. 第十七章 Android(安卓)常见的Service
  8. Android线程的学习
  9. Android面试系列文章2018之Android部分之自定义View篇

随机推荐

  1. 简单实现 Android(安卓)闹钟
  2. Android系统dimension单位详解
  3. android 定义 程序 Scheme 接收特定URI开
  4. Android(安卓)监听返回按钮事件
  5. Android(安卓)处理OnItemClickListener时
  6. Android-Service组件之AIDL
  7. Android事件总线:EventBus
  8. android style中出现自定义属性时的写法
  9. android4.0.3,设置开机不自动进入锁屏状态
  10. Android自带语音播报+讯飞语音播报封装(