webview怎么实现java和js交互的

 我来答
最爱用户已上天
2016-09-17 · 超过113用户采纳过TA的回答
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:191万
展开全部
  可以,只要你是用webview打开的,那么不管事远程还是本地,都可以通过webview与app的本地java代码进行交互。没有任何区别。
  1、webview必须设置支持Javascript

  1
  
  mWebview.getSettings().setJavaScriptEnabled(true);
  

  2、加进一个回调的代理类JavaScriptInterface,并给它一个调用的名称:ncp

  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  
  mWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp");
  final class JavaScriptInterface {
  
  public int callOnJs() {
  
  return 1000;
  }
  
  public void callOnJs2(String mode) {
  //TODO
  }
  
  }
  

  3、JS页面

  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  
  <script type="text/javascript">
  window.onload = function(){
  document.getElementById('btn_1').addEventListener('click', onBtnClick, false);
  var _int_value = window.ncp.callOnJs();
  alert("get int from java:" + _int_value );
  }
  function onBtnClick() {
  window.ncp.callOnJs2("click");
  }
  </script>
  

  接下来就可以调用js方法了,
  1、Java调用js方法

  1
  
  mWebView.loadUrl("javascript:onSaveCallback()");
  

  2、JS访问java方法

  1
  
  window.ncp.callOnJs2("click");
  
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式