Cordova / Phonegap Inappbrowser / IFrame无法在Android上打开相机

时间:2017-04-21 03:33:21

标签: cordova iframe cordova-plugins phonegap

运行Cordova / Phonegap 6.4.0,Android 5.0,使用Inappbrowser和Iframe进行测试,两者都不会打开相机,只是打开了一个原生文件选择窗口。但我需要打开相机。

<input type="file" name="fileToUpload" id="fileToUpload" accept="image/*" capture="camera">

1 个答案:

答案 0 :(得分:0)

修改

我以前遇到过这个问题。它适用于某些设备而非其他设备。似乎有些设备使用不同的webview,这可能会或可能不会完全支持HTML中的相机输入,或者它们看起来似乎有不同的语法。

出于这个原因,我建议使用相机插件。这样可以在所有设备上提供一致的结果。

Cordova文件插件:

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/

与Cordova文件传输插件一起使用:

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file-transfer/

如果您只想选择图像或图片,可以使用Cordova Camera Plugin

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/

使用此功能,您可以让用户从相机中选择图像

安装相机插件:

cordova plugin add cordova-plugin-camera

示例相机插件JS代码:

var cameraOptions = {

    destinationType: Camera.DestinationType.DATA_URL,
    sourceType: Camera.PictureSourceType.CAMERA
}

function cameraSuccess(data){

    console.log(data);

    var img = document.getElementById("yourImg");

    img.src = data;

}

function cameraError(error){

    console.log(error);

}

navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);

示例HTML:

<div><img id="yourImg" src=""/><div>

<强>原始

尝试使用此行:

<input type="file" accept="image/*;capture=camera">

注意我在accept属性中包含了capture属性。