华观科技
软件工匠,用心服务
Android通过JS调用java接口选择本地视频文件示例
更新日期: 2015年12月15日 15:51   来源: 本站   作者: 小城故事   阅读: 1591

1、Java代码

public class MainActivity extends Activity {
	private static final String TAG = MainActivity.class.getName();
	private static final int PICK_VIDEO_CODE = 1000;
	private WebView webView = null;
	private Handler handler = new Handler();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		webView = (WebView) findViewById(R.id.webView1);
		WebSettings webSettings = webView.getSettings();

		// 启用JavaScript
		webSettings.setJavaScriptEnabled(true);

		//加载本地HTML文件,路径位于/assets/html/index.html
		webView.loadUrl("file:///android_asset/html/index.html");

		// 添加JavaScript接口
		webView.addJavascriptInterface(new Object() {

			// 定义选择视频文件接口
			@JavascriptInterface
			public void pickVideoFile() {
				handler.post(new Runnable() {
					public void run() {
						Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
						startActivityForResult(intent, PICK_VIDEO_CODE);
					}
				});
			}

		}, "videoAPI");
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (requestCode == PICK_VIDEO_CODE) {
			if (resultCode == RESULT_OK) {
				// 返回已选择的视频文件路径
				String selectedVideoFilePath = data.getData().getPath();
				Log.i(TAG, selectedVideoFilePath);
			}
		}
	}
}

2、HTML+JavaScript代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
	content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-touch-fullscreen" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="stylesheet" type="text/css" href="style/skins.css" />
<title>JS接口测试</title>
<style type="text/css">
body{
	font-size:20px;
}
fieldset {
	margin-bottom: 10px;
}

.list li {
	line-height: 2em;
}
</style>
</head>
<body>
	<fieldset>
		<legend>视频调用接口示例</legend>
		<div class="list">
			<ol>
				<li><a href="javascript:videoAPI.pickVideoFile()">测试选择视频文件</a></li>
			</ol>
		</div>
	</fieldset>
	
</body>
</html>
附件:
软件工匠  用心服务
联系方式
邮箱:farseersoft@163.com
地址:广州市天河区东莞庄一横路116号广东生产力大厦11层1101-1104
关注公众号
扫码访问微站