android js 互调

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>



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值