从android webView

时间:2017-01-09 17:54:30

标签: javascript android html webview

我试图从Android webView中加载的html页面打开android原生相机 通过使用HTML输入类型文件标记。

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

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

我已经在iPhone webView上尝试了相同的页面并且它正在运行。

我该怎么办?

1 个答案:

答案 0 :(得分:4)

如果我理解你的问题

您想要点击网页上的按钮(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 /网页中包含以下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>

我通过演示视频提供示例项目的链接,看看。 https://drive.google.com/drive/folders/0BwRMp8dK9LMLeEo5cTlXVE9ZUW8?usp=sharing

您也可以参考这些教程

欢呼!