安卓Native和H5页面进行交互

前端之家收集整理的这篇文章主要介绍了安卓Native和H5页面进行交互前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

安卓Native和H5页面进行交互


  1、H5页面调用安卓Native界面
    1)通过给webView添加JsInterface,安卓提供接口,让H5来进行调用
        a)安卓写一个类,里面的方法需要用通过注解来表明是java接口的方法

      eg:

  1. private class WebInterface {
  2. @JavascriptInterface
  3. public void callFromJSBasicDataType(int x,float y,1)">char c,1)">boolean result) {
  4. String str = "-" + (x + 1) + "-" + (y + 1) + "-" + c + "-" + result;
  5. Log.e("tttt","tttttt"+str);
  6. }
  7. @JavascriptInterface
  8. void callAndroidMethod() {
  9. Log.e("tttt","tttttt2");
  10. }
  11. }

     b)设置webView可以支持js
      eg:
          webView.getSettings().setJavaScriptEnabled(true);
         c)给webView添加js接口类,并取别名
          webView.addJavascriptInterface(new WebInterface(),"robot");
    
    至此,安卓的配置完成了。
    
      下面配置HTML页面
      在代码添加下面的代码,如果加载了页面了,就会调用起别名叫robot这个接口类里面的js接口方法
    <p>
        <button onclick="robot.callFromJSBasicDataType(1,2,'a',true);">点击我调用android 方法</button>
    </p>

    2)通过设置webview的setWebViewClient。安卓通过url跳转时的改变,来进行不同的操作
当webview加载的页面出现变化的时候,可以进行不同的操作,例如访问站外的网址,或者黑名单的网址进行提示
    eg:

  1. wb.setWebViewClient(new Custom());
  2. private class Custom extends WebViewClient{
  3. @Override
  4. shouldOverrideUrlLoading(WebView view,String url) {
  5. // TODO Auto-generated method stub
  6. Log.e("tttt",url);
  7. if (url.contains("bai")) {
  8. Dialog d=new Dialog(MainActivity.this);
  9. d.setTitle("ttttt");
  10. d.show();
  11. return true;
  12. }
  13. false;
  14. }
  15. @Override
  16. onPageStarted(WebView view,String url,Bitmap favicon) {
  17. TODO Auto-generated method stub
  18. super.onPageStarted(view,url,favicon);
  19. }
  20. @Override
  21. onPageFinished(WebView view,1)">.onPageFinished(view,url);
  22. }
  23. }

  2、安卓Native界面调用H5方法
主要就是通过webview的LoadUrl方法
eg:
webView.loadUrl("javascript:noParamFunction();");
注:需要页面加载完成之后调用才有效。因为js脚本需要完全加载到页面中才可以调用到,否则没有任何效果

 

猜你在找的Android相关文章