大家都知道原生态开发,也就是纯安卓开发,其实一个app还可以与h5 相结合,也就是混合开发,

想必搞android开发的百分之九十多都会知道混合开发,但是我之前做的项目都是原生态开发,不过现在混合开发,也是一个热门。

所以我就在业余时间查看一下混合开发的流程,为以后做混合开发打下一定的基础,希望这篇博客对大家能有多帮助。

有什么不足的地方,还希望大神们多多提点;不多说了,咱们进入主题;


想要做混合开发,肯定离不开webView, 还要对一些html有一些了解,本人之前web端有过一段时间的开发经验,现在在公司做游戏管理后台,对自己也有很多帮助,

针对于webview的知识,我就不再这里过多的叙述了,过客们可以在网上查阅学习一下:

我总结了几种webview与h5之间的调用的案例供大家参考:


一.初始化WebView并且加载网络页面


1.设置支持js脚本语言


  webSettings.setJavaScriptEnabled( true );


2.支持双击 前提是页面要支持彩显示


  webSettings.setUseWideViewPort( true );


3.支持缩放按钮 前提要支持才显示


webSettings.setBuiltInZoomControls( true );


4.设置客户端 不跳转到默认浏览器中


  webView .setWebViewClient( new  WebViewClient());


5,加载网络资源


   webView .loadUrl( "http://atguigu.com/teacher.shtml" );


6.显示页面


setContentView(webView);


二.在工程main目录下创建 assets目录且加载本地资源


webView .loadUrl( "file:/// android_asset /JavaAndJavaScriptCall.html" );


三.java调用js


/**
 
 * Java 
 调用 
 javaScript
 
 *  
 @param  
 numebr
 
  
 */
 
private void  
 login(String numebr) {
 
     
 webView 
 .loadUrl( 
 "javascript:javaCallJs(" 
 + 
 "'" 
 +numebr+ 
 "'" 
 + 
 ")" 
 );
 
    setContentView( 
 webView 
 );
 
}


四.js掉android


1.配置js接口


//设置支持js调用java
 
webView.addJavascripInterface(new AndroidandJSInterface(),"android");




2.实现js接口类


/**
 
 * js 
 可以调用该类的方法
 
 */
 
class  
 AndroidAndJSInterface{
 
     
      
 public void  
 showToast(){
 
        Toast. 
 makeText 
 (JavaAndJSActivity. 
 this 
 ,  
 " 
 我被 
 js 
 调用了 
 " 
 ,  Toast. 
 LENGTH_SHORT 
 ).show();
 
    }
 
}


3.解决WebView.addJavascriptInterface接口不起作用得两种方法


(1)针对版本改成16


(2)在js接口类得方法上添加@JavascriptInterface 注解


/**
 
 * js 
 可以调用该类的方法
 
 */
 
class  
 AndroidAndJSInterface{
 
     
 @JavascriptInterface
 
     
 public void  
 showToast(){
 
        Toast. 
 makeText 
 (JavaAndJSActivity. 
 this 
 ,  
 " 
 我被 
 js 
 调用了 
 " 
 , Toast. 
 LENGTH_SHORT 
 ).show();
 
    }
 
}



只是简单的使用,不过很受用。总结的虽然不深刻,但是项目中会用到的,学习还是需要日积月累的,每一天积累一点,就是有收获的。