我可以在webview中打开相机吗?

时间:2011-04-27 12:15:16

标签: android camera cordova android-webview android-camera

我可以在webview中打开Android摄像头吗?

2 个答案:

答案 0 :(得分:8)

使用Webview时使用相机功能的最简单方法是使用Intent。

如果你使用API​​,你必须自己构建很多UI。这取决于您在应用程序中需要执行的操作以及对“拍照过程”需要多少控制权。如果您只是需要快速拍摄照片并在应用程序中使用它,那么Intent就是您的最佳选择。

意图示例:

private Uri picUri;
private void picture()
{
     Intent cameraIntent = new Intent("android.media.action.IMAGE_CAPTURE");
     File photo = new File(Environment.getExternalStorageDirectory(), "pic.jpg");
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
     picUri = Uri.fromFile(photo);
     startActivityForResult(cameraIntent, TAKE_PICTURE);
}

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    switch(requestCode){
        case TAKE_PICTURE:
            if(resultCode == Activity.RESULT_OK){
                Uri mypic = picUri;
                //Do something with the image.
            }
}

我从另一个答案中借用了这个例子的一部分来构建它。但我不再拥有这个网址了。

在我正在编写的应用程序中,我将此图像转换为Base64,然后将其传递给Javascript,然后将其发布到我的服务器。但是,这可能超出了你需要知道的程度。 :)

here是使其在webView上运行的链接

答案 1 :(得分:1)

据我所知,这并非直接内置于Android API中。但是,您可以使用PhoneGap,它将Javascript挂钩提供给本机设备功能(即相机)。

您可以查看支持的功能列表here,并阅读他们的相机API文档here