在android上,用WEB頁面打開手機攝像頭

今天看到一我的提問,怎麼在android上用web頁面打開手機攝像頭。恰好咱們以前也作過相似的工程,恰好把想法寫一下:javascript

一、基本原理:html

頁面上作一個按鈕,如打開攝像頭,它作的事情就是將頁面連接到一個特殊的頁面,如<a href="opencapture">打開攝像頭</a>;而後使用安卓的webview訪問網頁頁面,同時重寫shouldOverrideUrlLoading捕獲url,當判斷url爲opencapture時,則使用安卓的api打開手機攝像頭;

二、簡單案例:java

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

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

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);api

//能夠根據不一樣的URL,作不一樣的操做
}
}瀏覽器

三、調用:
webView.setWebViewClient(new MyWebViewClient());

webView.loadUrl(url_site);
webView是WebView的對象
四、我的對android界面開發的一些見解
我的以爲android的界面排版與web排版比起來,仍是稍顯複雜。對於須要很美觀的界面,我我的傾向用web頁面的方式實現,一來能夠方便的用HTML排版;二來直接能夠在服務器上修改頁面而不用升級客戶端。可是缺點是:畢竟android的瀏覽器不能與IE這樣的瀏覽器相比,對HTML、JS的支持須要大打折扣。
相關文章
相關標籤/搜索