静态网页与安卓交互的实现
来源:互联网 发布:淘宝嘉年华怎么取消 编辑:程序博客网 时间:2024/05/17 08:20
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/webview" />
</LinearLayout>
assets目录下的index.html文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
function btnOnClick()
{
alert("我是被点击事件...");
}
function mytest()
{
window.myTrack.track("hhhhhhhhhhhgggggggggggfffffffffff");
}
</script>
</head>
<body>
<input type="button" name="btn_click" value="点击事件" onclick="btnOnClick();" />
<input type="button" name="btn_click" value="跟踪事件测试" onclick="mytest();" />
</body>
</html>
TestJqueryActivity类
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class TestJqueryActivity extends Activity {
/** Called when the activity is first created. */
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Toast.makeText(TestJqueryActivity.this, Environment.getExternalStorageDirectory()+"/serverconfig", 1000).show();
// Log.v("TestJqueryActivity:", Environment.getExternalStorageDirectory()+"/serverconfig");
webView=(WebView)findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyTrack(), "myTrack");
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//允许js弹出窗口
webView.loadUrl("file:///android_asset/index.html");
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result)
{
AlertDialog.Builder b2 = new AlertDialog.Builder(TestJqueryActivity.this)
.setTitle("来自网页的消息").setMessage(message)
.setPositiveButton("ok",
new AlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
result.confirm();
// MyWebView.this.finish();
}
});
b2.setCancelable(false);
b2.create();
b2.show();
return true;
}
});
}
}
MyTrack类
import android.util.Log;
public class MyTrack {
public void track(String message)
{
Log.v("this is my track message:", message);
}
}
这个测试项目的核心是 webView.addJavascriptInterface(new MyTrack(), "myTrack"); 这句代码,该代码可以将index.html中的参数类容传人安卓程序中,从而实现了静态网页与android的交互。addJavascriptInterface将MyTrck类作为一个标记myTrack在网页中使用,index.html中的window.myTrack.track("hhhhhhhhhhhgggggggggggfffffffffff");就相当于调用了MyTrack类中的track方法,从而讲hhhhhhhhhhhgggggggggggfffffffffff在log日志中打印出来。另外这个例子中还包括了网页在安卓环境中弹出对话框的实现,感兴趣的话自己试一试。
- 静态网页与安卓交互的实现
- 静态网页与安卓交互的实现
- 安卓实现与javaweb的交互
- 安卓Andriod与网页交互实现网页图片浏览----未完待续
- 安卓实现webview 与js交互
- webjs与Android(网页和安卓)交互
- 静态网页如何实现动态交互?-JavaScript
- WebView--安卓与HTML的交互
- 安卓利用Json实现与服务器交互
- Qt5.6 c++与网页html/js的交互实现
- 使用springmvc实现网页前端与后台的数据交互
- 安卓与servlet交互
- 安卓与js交互
- 安卓与JS交互
- unity3D与网页的交互
- unity3D与网页的交互
- QT 与 网页的交互
- unity3D与网页的交互
- 龙芯专家的空间
- html中返回上一页
- Android自定义Button按钮显示样式
- C# String.Format格式说明
- struts封装表单数据
- 静态网页与安卓交互的实现
- vs2005新建asp.net网站
- unity3D中使用协程来做“多次调用一次更新”特性的一个大坑。
- 17-1不再使用的Vector
- eclipse恢复删除的文件
- spring mvc 与 jquery ajax
- 实现Windows与VMware下Linux的文件共享 VMware Tools 安装
- 求字符串长度的实现
- 函数如何返回多个值