I want to access the phone camera using HTML5 on Android. I currently have Chrome 31.0.1650.59 on Kitkat.
I can confirm my code working in Chrome browser on Android, but I can not get it to work in WebView. I do not want to release the intention and use the default camera application. I want to display the camera channel in a WebView.
Here is my HTML code.
<video id="video" width="640" height="480" autoplay></video>
<script>
window.addEventListener("DOMContentLoaded", function() {
var video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function(error) {
console.log("Video capture error: ", error.code);
};
if(navigator.webkitGetUserMedia) {
navigator.webkitGetUserMedia(videoObj, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
}
}, false);
</script>
This is pretty standard.
Here is the Android code that displays this page:
WebView webView = (WebView) rootView.findViewById(R.id.webView);
WebSettings ws = webView.getSettings();
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result){
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
return true;
}
@Override
public boolean onJsPrompt (WebView view, String url, String message, String defaultValue, JsPromptResult result){
return true;
}
});
webView.setWebViewClient(new WebViewClient());
ws.setJavaScriptEnabled(true);
ws.setAllowFileAccess(true);
ws.setDomStorageEnabled(true);
webView.loadUrl("http://html-page.htm");
Many of these configurations have nothing to do with the problem, but desperate attempts.
source
share