我正在测试一个Web应用程序,在那里我遇到了一个按钮。此按钮应该启动客户端的相机应用程序,然后允许用户上传照片。
当我在虚拟机上测试时,没有相机应用程序,因此该按钮对我没有任何作用。
经过一些研究,我认为Web应用程序是使用/ cordova
构建的。我可以访问JavaScript,我相信,它负责按钮操作 - 但我无法共享代码。
总之,这是发生的事情:
var client_camera = navigator.camera;
client_camera.getPicture(...)
有没有办法让浏览器/网络应用程序认为我有相机/相机应用程序,从而可以上传这样的图片?
编辑: Documentation of the discovered function can be found here
答案 0 :(得分:1)
您无法绕过相机操作。
无论如何,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);
然后,您可以在change
元素
input
事件处理程序选择文件时启动上传过程