首先在layout文件夹下的xml中 加入

 <WebViewandroid:id="@+id/wv1"android:layout_width="fill_parent"android:layout_height="fill_parent"/>

public class jsWebDemo extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);         WebView wView = (WebView)findViewById(R.id.wv1);                ProxyBridge pBridge = new ProxyBridge();        wView.addJavascriptInterface(pBridge, "AliansBridge");                WebSettings wSet = wView.getSettings();        wSet.setJavaScriptEnabled(true);                wView.loadUrl("file:///android_asset/index.html");            }public class ProxyBridge {public int one () {return 1;}}}

wView.addJavascriptInterface(pBridge, "AliansBridge");
上句代码是实例化一个方法为的是在html中的js中调用,第二个参数则是 实例化方法的别名,如果要使用这个pBridge,则在js中使用的名字就是AliansBridge。

WebSettings wSet = wView.getSettings();
wSet.setJavaScriptEnabled(true);
上面两句就是允许使用js的意思

wView.loadUrl(file:///android_asset/index.html);
就是在asset下放入一个index.html文件,这个文件包含js的代码,注意路径是“///”,这个android_asset不是文件夹的名字是系统自动生成的,其实就是asset文件夹的系统路径。

index.html 内容如下

<html><body><div id="output">Test page.</div><input type="submit" value="change to 1" onclick="document.getElementById('output').innerHTML = AliansBridge.one()" /></body></html>

这里要注意 如果你只有一个方法需要被js调用

ProxyBridge pBridge = new ProxyBridge();
wView.addJavascriptInterface(pBridge, "AliansBridge");

如果你需要调用好多个方法呢 这里只要

wView.addJavascriptInterface(this, "AliansBridge");

把整个android程序所在的类 本身实例化传递就可以了

这里呢可以参看附件中的实例riademo

你如果想继续扩展可以参看

http://www.ophonesdn.com/article/show/115

2.上面是javascript调用android的方法,那么android也可以调用js的方法

public class webJsDemo extends Activity {    /** Called when the activity is first created. */private WebView mWebView; private Handler mHandler = new Handler();        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mWebView = (WebView) findViewById(R.id.wv1);                   WebSettings webSettings = mWebView.getSettings();           webSettings.setSavePassword(false);           webSettings.setSaveFormData(false);           webSettings.setJavaScriptEnabled(true);           webSettings.setSupportZoom(false);                  mWebView.setWebChromeClient(new MyWebChromeClient());             mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");             mWebView.loadUrl("file:///android_asset/demo.html");       }         final class DemoJavaScriptInterface {             DemoJavaScriptInterface() {           }             /**           * This is not called on the UI thread. Post a runnable to invoke           * loadUrl on the UI thread.           */          public void clickOnAndroid() {                      mHandler.post(new Runnable() {                   public void run() {                       mWebView.loadUrl("javascript:wave()");                   }               });             }       }         /**       * Provides a hook for calling "alert" from javascript. Useful for       * debugging your javascript.       */      final class MyWebChromeClient extends WebChromeClient {           @Overridepublic boolean onJsAlert(WebView view, String url, String message,JsResult result) {// TODO Auto-generated method stub        Log.d("aa", message);          Log.d("url", url);        Log.d("result", ""+result);                    result.confirm(); return super.onJsAlert(view, url, message, result);            }    }   

其中上面的代码 也提到了怎么在android中调试js mWebView.setWebChromeClient(new MyWebChromeClient());

上面的代码来源于别人的实例。

最后还要注意在这个实例中demo.html和两个image应该在同一个文件夹asset下

更多相关文章

  1. 另类方法屏蔽Android4.03的HOME按键
  2. android SDK更新方法总结
  3. android设置Activity背景色为透明的2种方法
  4. Android 性能优化实例
  5. android中设置分隔线几种方法
  6. android 使用DigestUtilsmd5加密的方法
  7. Android getWindow().setFlags方法与SD卡权限
  8. android 浏览器怎么支持 window.close() 和window.opener.locati
  9. Android修改自己程序字体的方法详解

随机推荐

  1. Android google Map 出现问题
  2. Android Studio快捷键提高工作效率的奇技
  3. android 监听事件的处理
  4. Android在Fragment中不调用onActivityRes
  5. Android Manager之WindowManager(窗口管
  6. Android集成微信登录和支付
  7. Android之动画
  8. Android原生工程配置导入uni-app项目-混
  9. android视频截屏&手机录屏实现代码
  10. 在Android Studio 配置OpenCV 3.1