package com.android.EBrowser;

import android.app.Activity;
import android.graphics.Rect;
import android.graphics.Region;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.*;

public class EWebActivity extends Activity {
/** Called when the activity is first created. */
private static final String TAG = "WebActivity";
public WebView mWeb = null;
@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  mWeb = (WebView) findViewById(R.id.webwiew);
  //此处需要打开js 开关
  mWeb.getSettings().setJavaScriptEnabled(true);
  mWeb.setBackgroundColor(0);

  ///添加java js 内置对象。
  mWeb.addJavascriptInterface(new Utility(), "Utility") ;

  mWeb.clearCache(true);
  mWeb.setInitialScale(100);
  mWeb.requestFocus();
  mWeb.loadUrl("http://172.23.65.145/index.htm");
}



///* js 对象实现。
class Utility {
  ////@JavascriptInterface 从android 4.2,之后,需要加上,否则js 运行后会找不到方法,
  ///这个需要注意。
  @JavascriptInterface
  public void setValue(String a,String b,String c,String d){
    Log.d(TAG,"====>a="+a +"b="+b+"c="+c+"d="+d);
  }

  @JavascriptInterface
  public String getValue(){
    Log.d(TAG,"====>to get value");
    return "eos";
  }
}
//*/
}


//////////////////////////////////////////////////////////////////////////////////
//index.htm 页面实现。


<html>
<head>
</head>
<body >
hello world
<a id="a1" href="www.google.com" >google</a>

</br>

<script language="javascript">
  Utility.setValue("11","22","33","55");
  Utility.getValue();
</script>
</body>
</html>

////////////////////////////////////////////////////////////

(1), 关于 js 中调用内置对象 需要这样使用

    Utility.setValue(); 此种扩展的js 内置对象不能,使用newUtility().setValue();

(2),为安全考虑,(js可以通过,反射机制去访问,修改webview 等)在android 4.2 以后。js 扩展接口需要加上,“@JavascriptInterface” ,

  否则会报Object [object Object] has no method 这个类错误。

  

更多相关文章

  1. 在android中创建包含对象数组对象List 的Parcelable
  2. android解析二维数组对象key:value
  3. Android五大布局对象
  4. Android 随时随地键值对存储对象解决方案
  5. android对象池之Message
  6. Android的绘制文本对象FontMetrics的介绍及绘制文本
  7. Android JNI和NDK学习(09)--JNI实例二 传递类对象

随机推荐

  1. Android开发板串口(SerialPort)通信
  2. Toggle Dns Check到底干了什么
  3. GalleryActivity读取本地相册及照片 能够
  4. ORB_SLAM2在Android上的移植过程
  5. android源码下载并通过repo同步解出源码
  6. Android 热修复核心原理,ClassLoader类加
  7. 惊人利润:Android系统免费背后影藏的巨大
  8. Android利用爬虫实现模拟登录的实现实例
  9. android 蓝牙知识(转帖)
  10. 关于谷歌地图的问题:requires unavailable