android webview拍照,android – 我可以在webview中打开相机吗?

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

解决方法:

使用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.

}

}

我从另一个答案中借用了这个例子的一部分来构建它.但是我没有URL了.

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

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

来源: https://codeday.me/bug/20190927/1822763.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android,可以使用WebView拍照并显示。首先,我们需要为WebView添加一个JavaScript接口,以允许在网页调用Android相机功能。 首先,在Android的Activity类,我们可以使用以下代码来实现: //启用JavaScript webView.getSettings().setJavaScriptEnabled(true); //添加一个JavaScript接口 webView.addJavascriptInterface(new WebAppInterface(this), "Android"); 然后,我们需要创建一个WebAppInterface类,该类将提供一个方法来调用相机功能并将照片显示在WebView: public class WebAppInterface { Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** Invoke the camera */ @JavascriptInterface public void invokeCamera() { //创建一个隐式Intent来启动相机应用 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //使用startActivityForResult方法来启动相机应用,以便在拍照完成后获取结果 ((Activity) mContext).startActivityForResult(intent, CAMERA_REQUEST_CODE); } /** Display the captured photo in WebView */ @JavascriptInterface public void displayPhoto(String photoPath) { //将照片显示在WebView webView.loadUrl("javascript:displayPhoto('" + photoPath + "')"); } } 在WebAppInterface类,我们创建了一个 invokeCamera() 方法用于调用相机应用,以及一个 displayPhoto() 方法用于将照片显示在WebView。 然后,在Activity类的 onActivityResult() 方法,我们可以获取到从相机应用返回的照片,并将其传递给WebAppInterface的 displayPhoto() 方法: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) { //获取照片路径 String photoPath = data.getData().getPath(); //通过WebAppInterface将照片显示在WebView webView.loadUrl("javascript:window.Android.displayPhoto('" + photoPath + "')"); } } 以上就是通过WebView拍照并显示的基本步骤。通过在网页调用Android相机功能,然后在Android应用获取并显示照片,以实现拍照并显示的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值