在android上,用WEB页面打开手机摄像头

孤街浪徒 提交于 2019-12-02 22:32:04

今天看到一个人提问,怎么在android上用web页面打开手机摄像头。刚好我们之前也做过类似的工程,刚好把想法写一下:

1、基本原理:

页面上做一个按钮,如打开摄像头,它做的事情就是将页面链接到一个特殊的页面,如<a href="opencapture">打开摄像头</a>;然后使用安卓的webview访问网页页面,同时重写shouldOverrideUrlLoading捕获url,当判断url为opencapture时,则使用安卓的api打开手机摄像头;

2、简单案例:

final class MyWebViewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}

public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.d("WebView", "onPageStarted");
super.onPageStarted(view, url, favicon);
}

public void onPageFinished(WebView view, String url) {
Log.d("WebView", "onPageFinished ");
view.loadUrl("javascript:window.local_obj.showSource('<head>'+"
+ "document.getElementsByTagName('html')[0].innerHTML+'</head>');");
tv_item_loading.setVisibility(View.GONE);
super.onPageFinished(view, url);

//可以根据不同的URL,做不同的操作
}
}

3、调用:
webView.setWebViewClient(new MyWebViewClient());

webView.loadUrl(url_site);
webView是WebView的对象
4、个人对android界面开发的一些看法
个人觉得android的界面排版与web排版比起来,还是稍显复杂。对于需要很美观的界面,我个人倾向用web页面的方式实现,一来可以方便的用HTML排版;二来直接可以在服务器上修改页面而不用升级客户端。但是缺点是:毕竟android的浏览器不能与IE这样的浏览器相比,对HTML、JS的支持需要大打折扣。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!