Android代码与webview控件的交互

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法。为了让大家容易理解,我写了一个简单的Demo,代码如下:

package com.example.webviewtest;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private WebView webview;
	private TextView textview;
	private Button btn;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		webview = (WebView) findViewById(R.id.webView1);
		webview.getSettings().setJavaScriptEnabled(true);
		webview.getSettings().setSupportZoom(true);
		webview.getSettings().setBuiltInZoomControls(true);
		textview = (TextView) findViewById(R.id.textView1);
		webview.loadUrl("file:///android_asset/test.html");
		final Handler mHandler = new Handler();
		webview.addJavascriptInterface(new Object() {
			@SuppressWarnings("unused")
			public void clickOnAndroid() {
				mHandler.post(new Runnable() {
					public void run() {
						textview.setText("success");
					}
				});
			}
		}, "demo");

		btn = (Button) findViewById(R.id.button1);
		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				webview.loadUrl("javascript:change()");
			}
		});
	}
}
<script language="JavaScript">
 function change() {
    if(document.form1.num.value=="提交")
       {
         document.form1.num.value="撤销";
       }
    else 
       {
         document.form1.num.value="提交";
       }
}
</script>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
   <body>
   <form name="form1">
    <input name="num" type="button" value="提交" onClick="window.demo.clickOnAndroid()"> 
   </form>
   </body>
 </html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值