码迷,mamicode.com
首页 > Web开发 > 详细

WebView与js的交互

时间:2016-02-24 15:30:49      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

android应用中嵌入网页是现在常用的,那么html中如何与android中事件进行绑定呢?

1、提供如下的js代码:

<script type="text/javascript" >
  function startActivity() {
    android.startActivity(); 
  }
</script>

<script type="text/javascript">
  $(‘#entry_button‘).on(‘click‘,function() {
    startActivity();
  });
</script>

 

2、提供调用webview的activty:

package com.lia.webview;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebViewActivity extends Activity {
  private WebView myWebView;

  @SuppressLint("SetJavaScriptEnabled")
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);

    myWebView = (WebView) findViewById(R.id.myWebView);
    //如果访问的页面中有Javascript,则webview必须设置支持Javascript。
    myWebView.getSettings().setJavaScriptEnabled(true);
    // 与js交互,JavaScriptinterface 是个接口,与js交互时用到的,这个接口实现了从网页跳到app中的activity 的方法,特别重要
    myWebView.addJavascriptInterface(new JavaScriptinterface(this), "android");
    myWebView.loadUrl("file:///android_asset/index.html");
  }
}

 

3、提供与js交互中需要用到的方法:

package com.lia.webview;

import android.app.Activity;
import android.content.Intent;

public class JavaScriptinterface {

  Activity mActivity;

  public JavaScriptinterface(Activity mActivity) {
    this.mActivity = mActivity;
  }

  /** 与js交互时用到的方法,在js里直接调用的 */
  public void startActivity() {

    //此处响应了js中的startActivity()方法,进行跳转;
    Intent intent = new Intent();
    intent.setClass(mActivity, MainActvity.class);
    mActivity.startActivity(intent);
    mActivity.finish();
  }
}

 

WebView与js的交互

标签:

原文地址:http://www.cnblogs.com/aimr/p/5213117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!