android 代码
package com.example.webview;
import java.io.File;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.ProgressBar;
public class Sec extends Activity {
private WebView webView;
private ProgressBar progressBar;
private Dialog dialog;
private File file;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.web);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
progressBar.setMax(100);
dialog = DialogUtils.createLoadingDialog(this, "玩命加载中...");
dialog.show();
//添加js支持
webView.getSettings().setJavaScriptEnabled(true);
//定义js调用对象
webView.addJavascriptInterface(this, "handler");
webView.setWebChromeClient(new MyWebViewClient());
webView.loadUrl("file:///android_asset/a.html");
// webView.loadUrl("http://192.168.0.88:7001/gdmsaec-app/app/electronicchartsection/dockView.html?id=334&sjkbmc=dock");
}
/**
* 打电话 此方法供 html页面的js调用
*/
@JavascriptInterface
public void openCall(){
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+123));
startActivity(intent);
}
/**
* 打开相机 此方法供 html页面的js调用
*/
@JavascriptInterface
public void openCmera(){
file = new File(Environment.getExternalStorageDirectory(), "IMG_"+System.currentTimeMillis() + ".jpg");
Intent intent = new Intent();
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(file));
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);
}
private class MyWebViewClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {
// progressBar.setProgress(newProgress);
if(newProgress == 100){
// progressBar.setVisibility(View.GONE);
dialog.dismiss();
}
super.onProgressChanged(view, newProgress);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case 1:
System.out.println(file.getName());
break;
}
}
}
}
html页面代码
<!DOCTYPE html>
<html lang="zh-CN">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" charset="utf-8">
<link rel="stylesheet" href="./css/bootstrap.min.css">
<!-- 可选的Bootstrap主题文件(一般不用引入) -->
<link rel="stylesheet" href="./css/bootstrap-theme.min.css">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="./js/jquery-1.8.0.min.js"></script>
<head>
<script type="text/javascript">
$(function() {
$('#button').click(function(){
//alert(2);
});
});
</script>
</head>
<body bgcolor="#fff">
<button οnclick="window.handler.openCall()">打电话</button>
<button οnclick="window.handler.openCmera()">拍照</button>
<table class="table .table-condensed">
<tr>
<td class="col-xs-4"> <strong>船名</strong></td>
<td class="col-xs-6" style="color: #969696">SDFGSS SDSFDS</td>
</tr>
<tr>
<td><b>MMSI</b></td>
<td style="color: #969696">30489486</td>
</tr>
<tr>
<td><b>呼号</b></td>
<td style="color: #969696">HP2408</td>
</tr>
<tr>
<td><b>船名</b></td>
<td style="color: #969696">SDFGSS SDSFDS</td>
</tr>
<tr>
<td><b>IMO</b></td>
<td style="color: #969696">5678678</td>
</tr>
<tr>
<td><b>经度</b></td>
<td style="color: #969696">N22°33'23.1"</td>
</tr>
<tr>
<td><b>维度</b></td>
<td style="color: #969696">E113°56'13.1"</td>
</tr>
<tr>
<td><b>船首向</b></td>
<td style="color: #969696">48°</td>
</tr>
<tr>
<td><b>航迹向</b></td>
<td style="color: #969696">319°</td>
</tr>
<tr>
<td><b>船舶类型</b></td>
<td style="color: #969696">客船</td>
</tr>
<tr>
<td><b>目的地</b></td>
<td style="color: #969696">深圳</td>
</tr>
<tr>
<td><b>预到时间</b></td>
<td style="color: #969696">2015-04-14 14:20:11</td>
</tr>
<tr>
<td><b>最后时间</b></td>
<td style="color: #969696">2015-04-14 11:20:11</td>
</tr>
</table>
</body>
</html>