【发布时间】:2014-11-16 19:07:53
【问题描述】:
正在构建我的第一个 Cordova 4.0 应用程序,我真的需要一些帮助,因为我将展示这个应用程序的演示 tmrw...
当我尝试访问 Network info API 和 Camera API(分别为navigator.connection 和 navigator.camera)时,它们总是返回 undefined。
我的 Android 清单中有这些权利:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
这里是安装的插件:
org.apache.cordova.camera 0.3.3 "Camera"
org.apache.cordova.console 0.2.11 "Console"
org.apache.cordova.device 0.2.12 "Device"
org.apache.cordova.network-information 0.2.13 "Network Information"
我还从平台文件夹中复制了cordova.js 文件,并将<SCRIPT TYPE="text/javascript" src="js/cordova.js"></SCRIPT> 标记添加到我的index.html 中。这里还有一个我尝试访问相机 API 的代码示例:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
$(document).on('click', '.camera', function(){
if (!navigator.camera) {
alert("Camera API not supported", "Error");
return;
}
var options = { quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: 1, // 0:Photo Library, 1=Camera, 2=Saved Album
encodingType: 0 // 0=JPG 1=PNG
};
navigator.camera.getPicture( function(imgData) { return imgData; }, function() { alert('Error');}, options);
});
}
当我运行它时,我总是收到“不支持相机 API”的警报,这意味着它是未定义的。
我错过了什么?
【问题讨论】:
-
您是否已将包含
cordova.js的script标签添加到您的html 文件中?您还需要等待deviceready事件触发,然后再检查cordova API。您需要显示您的 HTML 文件和代码,以便我们了解问题所在。 -
@frank 是的,添加了cordova.js。我已经用我的 index.html 文件中的一些代码更新了我的帖子。如您所见,它等待设备准备触发,但它仍然未定义。
-
@frank 我从
project_folder/platform/android/platform_www文件夹中复制了我的cordova.js文件。那是正确的文件吗? -
您需要将标签
<script type="text/javascript" src="cordova.js"></script>添加到您的index.html文件中。您要将cordova.js文件复制到哪里? -
是的,我已将其添加到我的 JS 文件夹中。
<script type="text/javascript" src="js/cordova.js"></script>
标签: javascript android cordova phonegap-plugins cordova-plugins