Android使用本地页面调用android代码

Activity代码:

package com.example.reg;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;

import com.example.reg.bean.MyObject;

public class WebViewActivity extends Activity{
	
	private static final String tag = WebViewActivity.class.getSimpleName();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.webview);
		WebView webview = (WebView) findViewById(R.id.web_view);
		webview.getSettings().setJavaScriptEnabled(true);
		//webview.loadUrl("http://www.baidu.com");
		webview.addJavascriptInterface(new MyObject(this), "myObj");
		webview.loadUrl("file:///android_asset/html/test.html");
		Log.d(tag, "执行结束..");
	}
	
}

MyObject代码:

package com.example.reg.bean;

import android.R;
import android.app.AlertDialog;
import android.content.Context;
import android.widget.Toast;

public class MyObject {
	Context mContext;

	public MyObject(Context mContext) {
		super();
		this.mContext = mContext;
	}
	
	public void showToast(String name){
		Toast.makeText(mContext, name, Toast.LENGTH_LONG).show();
	}
	
	public void showList(){
		new AlertDialog.Builder(mContext)
		.setTitle("图书列表")
		.setIcon(R.drawable.ic_btn_speak_now)
		.setItems(new String[]{"xx1","xx2","xx3"}, null)
		.setPositiveButton("确定", null)
		.create()
		.show();
	}

}

html路径:

\reg\assets\html\test.html    \reg 是项目名称

html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
	<title>js..调用Android..</title>
</head>
<body>
	<input type="button" value="sayHi" onclick="myObj.showToast(‘carl‘);"/>
</body>
</html>

如果要在本地页面中引入外部css文件则添加如下代码:

<!--引入css文件-->

<link rel="stylesheet" href="file:///android_asset/html/style.css" type="text/css"/>


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。