从webview打开相机

时间:2016-12-22 09:59:30

标签: java android cordova android-studio webview

当我使用webChromeClient时,如何从webview中打开相机?

在HTML中,我使用:<input id="input-1" class="input-upload" type="file" accept="jpg/*|png/*|gif/*|image/*" style="display:none;"/>

在Android中我使用:

 webSettings.setJavaScriptEnabled(true);
 mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
 mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

 mWebView.setWebChromeClient(new WebChromeClient(){
     @Override
     public void onPermissionRequest(final PermissionRequest request) {
         request.grant(request.getResources());
     }

拥有这些权限:

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.front" android:required="true" />

这适用于Android下的Chrome浏览器。我不知道为什么它不能在同一部手机上使用webview。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

在Android应用中使用回调.. 1.)创建一个回拨课程&#39; ExampleCallback&#39;。在dataResponse上添加注释

   class ExampleCallback{

     @JavascriptInterface
        public void dataResponse(String res) {
//Put your code to open camera
    }
    }

2。)将此回调添加到您的网页视图

webView.addJavascriptInterface(new ExampleCall(this), "Android");

在您的html页面上创建一个名为Android的java脚本函数,并在您想要打开相机时调用它。 java脚本会是这样的。

<script>

    function showAndroidToast(res) {

        Android.dataResponse(res);
    }

</script>