我试图从Android webView中加载的html页面打开android原生相机 通过使用HTML输入类型文件标记。
<input type="file" accept="image/*">
我不知道为什么但相机没有打开,我不知道该怎么做。
我已经在iPhone webView上尝试了相同的页面并且它正在运行。
我该怎么办?
答案 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 强>
您也可以参考这些教程
欢呼!