我正在测试一个Web应用程序,在那里我遇到了一个按钮。此按钮应该启动客户端的相机应用程序,然后允许用户上传照片。
当我从虚拟机进行测试时,没有相机应用程序,因此该按钮对我没有任何作用。
经过一些研究,我相信Web应用程序是用cordova
构建的。我确实可以访问JavaScript,我相信JavaScript负责按钮操作 - 但我不能共享代码。
总之,这是发生的事情:
var client_camera = navigator.camera;
client_camera.getPicture(...)
有没有办法让浏览器/网络应用程序认为我确实有一个相机/相机应用程序,从而可以上传这样的图片?
编辑:发现的功能的文档可以在这里找到
您无法绕过相机操作。
无论如何,navigator
是一个包含客户端详细信息的对象(浏览器,操作系统和某些组件,如相机,闪存等(。
我在这里只能建议
检查是否有摄像头。
如果是,请使用它。
如果没有,请添加默认文件上传程序
代码
if(navigator.camera){
//camera is there add the code to capture from camera
}
else{
var file=document.createElement('input');
file.set attribute('type','file');
//append it to the container div or body
// assume that you have a div with class container
document.querySelector('div.container').appendChild(file);
然后,您可以在选择文件时启动上传过程,方法是在 input
元素上使用change
事件处理程序