当我使用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。
答案 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>