Javascript 从android webView打开摄像头

Javascript 从android webView打开摄像头,javascript,android,html,webview,Javascript,Android,Html,Webview,我正在尝试从android webView中加载的html页面打开android本机摄像头 通过使用HTML输入类型文件标记 <input type="file" accept="image/*"> 我不知道为什么,但相机没有打开,我不知道该怎么办 我在iphonewebview上尝试了同一个页面,它运行正常 我能做什么 如果我正确理解你的问题 你想在网页(html)中点击按钮打开android设备摄像头吗 基于这个假设,, 您需要执行以下操作 使用JavascriptInte

我正在尝试从android webView中加载的html页面打开android本机摄像头 通过使用HTML输入类型文件标记

<input type="file" accept="image/*">

我不知道为什么,但相机没有打开,我不知道该怎么办

我在iphonewebview上尝试了同一个页面,它运行正常


我能做什么

如果我正确理解你的问题

你想在网页(html)中点击按钮打开android设备摄像头吗

基于这个假设,, 您需要执行以下操作

使用JavascriptInterface

public class WebVCamBridgeInterface {
        /**
         * Javacript function to start native camera
         */
        @JavascriptInterface
        public void takePicture() {
            captureImage();
        }

        /**
         * Javascript function to start the GalleryActivity for user to choose the  image to be uploaded
         */
        @JavascriptInterface
        public void showPictures() {
            Intent intent = new Intent(LandingActivity.this, GalleryActivity.class);
            startActivityForResult(intent, Constants.REQ_GALLERY);
        }

    }
将JSinterface添加到您的webview

webView.addJavascriptInterface(new WebVCamBridgeInterface (), "AndroidDevice");
在html/web页面中包含以下JS

<script>
  function takePicture() {
    if(typeof AndroidDevice !== "undefined"){
      AndroidDevice.takePicture();
    }
  }

  function showPictures() {
    if(typeof AndroidDevice !== "undefined"){
      AndroidDevice.showPictures();
    }
  }

  function imageData(data){
    document.getElementById('displayImage').setAttribute( 'src', 'data:image/png;base64,'+data );
    if(typeof AndroidDevice !== "undefined"){
    }
  }
</script>

函数takePicture(){
if(AndroidDevice的类型!=“未定义”){
AndroidDevice.takePicture();
}
}
函数showPictures(){
if(AndroidDevice的类型!=“未定义”){
AndroidDevice.showPictures();
}
}
函数imageData(数据){
document.getElementById('displayImage').setAttribute('src','data:image/png;base64',+data);
if(AndroidDevice的类型!=“未定义”){
}
}
我提供了一个带有演示视频的示例项目链接,请看一看。

您也可以参考这些教程


干杯

如果我错了,请纠正我,但是您试图从html页面打开相机,对吗?