android webview

webview相当于android中的浏览器,基于webkit开发,可以浏览网页文件,支持css javascript 以及html

      一、 使用webview首先要有以下配置:

       1. AndroidManifest.xml中必须注册"android.permission.INTERNET"进行权限许可(如果只是使用本地HTML,可以不用注册许可权限),否则会出Web page not available错误。
       2.如果在web中使用js需要许可javascript执行:

java代码:

       //从xml中获取webview

    WebView webv =(WebView)findViewById(R.id.webv);

     //允许JS执行

   webv.getSettings().setJavaScriptEnabled(true);


  二、如果在用webview做应用的时候我们不希望新建webview进程,让程序跳来跳去那么进行如下设置

java代码:

webv.setWebViewClient(new WebViewClient(){

 

public boolean shouldOverrideUrlLoading(WebView view, String url) {

             view.loadUrl(url);

           //点击超链接的时候重新在原来进程上加载URL

            return true;

    }

});


 

 

    三、   webview加载本机的html文件如下:

java代码:

          file:///android_asset/teste.html   //加载项目assets下的文件teste.html

          file:///sdcard/index.html              //加载sdcard下的index.html文件

   四、 在javascript中调用java方法

      1、先将一个当前的java对象绑定到一个javascript上面,使用如下方法

               //context指当前对象,绑定到js的java_online上面,主要java_online的作用域是全局的。一旦初始化便可随处运行


           Online online = new Online(context);
           webView.addJavascriptInterface(online, "java_online");     
     
      2、定义被调用的java方法

java代码:

package com.demo.wsapi;

import org.json.JSONException;
import org.json.JSONObject;

import android.content.Context;

import com.demo.model.Const;

public class Online
{

 public Online(Context context)
 {
  // TODO Auto-generated constructor stub
  super();
 }

 public String online ()
 {
  JSONObject result = new JSONObject();

  try
  {
   result.put("Code", Const.SUCCESS_CODE);
   result.put("Description", "Success");
   result.put("ReturnData", Const.isOnline);
   result.put("Errormessage", "");
  }
  catch (JSONException e)
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  return result.toString();
 }

}

 


html代码:

java代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta http-equiv="cache-control" content="no-cache" />
    <link href="../css/css.css" rel="stylesheet" type="text/css" />
    <script src="../../../scripts/jquery.js" type="text/javascript"></script>
    <script type="text/javascript" src="../script/client.js"></script>

    <script>
        function execute() {
            var result = wsapi.online.isActive();
            document.getElementById('textarea1').value =json2str(result);
        }    
    </script>

</head>
<body><h2>
        wsapi.online.isActive</h2>
    <table>
        <tr>
            <td width="150">
                <input type="button" id="submit" value="执行" onclick="execute()" />
            </td>
        </tr>

</table>

</body>

 

client.js

(使用js原型):

wsapi.online = wsapi.prototype = {
 proxy : null,
 completed : false,
 isActive : function() {
  with (wsapi.online) {
   var result = java_online.online();
   return getResult(result, 'wsapi.online.online');
  }
 }
};

 

你可能感兴趣的:(android webview)