熟悉 Phonegap 后,我偶然发现了这个我无法评估(或者可以,有点)的错误。
因此,我想制作一个带有按钮的 HTML 页面,该按钮允许使用设备相机捕获图像(使用移动设备),我想没什么特别的。
我从 Phonegap 的文档中获取了基本代码,这就是我的页面的样子:
<!DOCTYPE html>
<html>
<head>
<title>Capture Image</title>
<script type="text/javascript" charset="utf-8" src="plugin_loader.js"></script>
<script type="text/javascript" charset="utf-8" src="json2.js"></script>
<script type="text/javascript" charset="utf-8">
// Called when capture operation is finished
//
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
// Called if something bad happens.
//
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
// A button will call this function
//
function captureImage() {
// Launch device camera application,
// allowing user to capture up to 2 images
navigator.device.capture.captureImage(captureSuccess, captureError, {limit: 2});
}
// Upload files to server
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
path = mediaFile.fullPath,
name = mediaFile.name;
ft.upload(path,
"http://my.domain.com/upload.php",
function(result) {
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
},
function(error) {
console.log('Error uploading file ' + path + ': ' + error.code);
},
{ fileName: name });
}
</script>
</head>
<body>
<button onclick="captureImage();">Capture Image</button> <br>
</body>
</html>
尝试一下(在我的电脑上),我收到以下错误:
XMLHttpRequest 无法加载 file:///C:/Users/toshiba/Desktop/test%20camera/cordova_plugins.json。仅 HTTP 支持跨源请求。
未捕获的类型错误:无法读取未定义的属性“捕获”
第一个错误与一些不存在的cordova_plugins.json相关,实际上它不存在。据我了解:您需要使用phonegap 就是cordova js(在我的例子中是plugin_loader.js,根据我在互联网上找到的建议进行了一些修改以帮助解决我的问题,但没有奏效......) .
第二个错误与以下行有关:
navigator.device.capture.captureImage(captureSuccess, captureError, {limit: 2});
但我猜这在计算机上是正常的,这不是“移动意义上的”设备。
我也在两台移动设备上进行了试用,但失败了。
我有我的 JS 文件,所以我的问题如下:是否有必要使用 HTML5 开发哪个 Phonegap,然后编译为其他特定平台的本机文件才能工作?我希望不是,因为我想在 web-app 模式下工作,或者我的问题与一些丢失的文件有关,如果是这样:我在哪里可以找到功能最可靠的 cordova js 文件?
编辑:我还认为,在计算机上,故障与无法从中检索设备规格和(因此)相机功能(?!)的导航器有关,这在计算机上,但在手机上也可能如此(手机的导航器也有同样的问题)。
我希望你能容忍我,因为我是新手,并提前感谢。