安卓Html5编程(一)

最近复习html5+css3的编程,发现很多知识都有点模糊,哎,突然感悟好记性不如烂笔头的真理 。废话不多说,开始今天的学习之路:

安卓端加载html5的配置

  • 首先配置布局为WebView。

  • web.getSettings().setJavaScriptEnabled(true);//此处打开加载js脚本,如果不设置会直接忽略js脚本而不执行。

  • web.setWebChromeClient(new WebChromeClient(){});//有人说我自己的alert()方法怎么不弹出,原因你是没设置这里。复写空方法就行。

  • web.loadUrl(“http://192.168.1.127/Myhtml5web/MyHtml.html“);//这里写上自己的网页地址。如果是在安卓工程地址:
    myWebView.loadUrl(” file:///android_asset/demo.html “);
    //打开本地sd卡内的demo.html文件
    myWebView.loadUrl(“content://com.android.htmlfileprovider/sdcard/demo.html”);

  • 如果出现JS加载的时候页面还没加载完毕的情况:
    web.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    }
    });

到此所有的配置结束,下面介绍安卓与html5的通信,也是本文章的核心地方.


html5与安卓通信

  1. html5调用安卓

    • 首先在安卓端设置: web.addJavascriptInterface(new testjs(), “t”);
      第一个参数:是个object 对象,就是传入的对象载体
      第二个参数:是这个对象外部调用的又名。

    • 第二步,实现testjs类

“`ruby
class testjs {
@JavascriptInterface
public void test() {

        Toast.makeText(Web.this, "周强最帅", 
        0).show();
    }

}
```
** @JavascriptInterface这个注解在4.2以后必须加上,否则会报错**
  • 第三步,在html5调用:


    是不是很简单,这个方法可以传递参数的,和java方法一样的

    1. 安卓调用html5的方法

      • 首先在html5定义方法

         function html5() {
            alert("我还是最帅的");
        } 
      • 在安卓端调用

        web.post(new Runnable() {
            @Override
            public void run() {
                web.loadUrl("javascript:html5()");
            }
        });

        至此安卓与html5互相通信结束。。

你可能感兴趣的:(html5+css3,html5,css3)