Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cordova网络和摄像头API返回未定义_Javascript_Android_Cordova_Phonegap Plugins_Cordova Plugins - Fatal编程技术网

Javascript Cordova网络和摄像头API返回未定义

Javascript Cordova网络和摄像头API返回未定义,javascript,android,cordova,phonegap-plugins,cordova-plugins,Javascript,Android,Cordova,Phonegap Plugins,Cordova Plugins,构建我的第一个Cordova 4.0应用程序,我真的需要一些帮助,因为我要展示这个应用程序tmrw的演示 当我尝试访问网络信息API和摄像头API(navigator.connection和navigator.Camera)时,它们总是返回undefined 我的Android清单中有以下权利: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name

构建我的第一个Cordova 4.0应用程序,我真的需要一些帮助,因为我要展示这个应用程序tmrw的演示

当我尝试访问网络信息API和摄像头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" />
我还从平台文件夹复制了
cordova.js
文件,并将
标记添加到我的index.html中。下面是我尝试访问camera 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);

    });
}
当我运行这个时,我总是收到“Camera API not supported”警报,这意味着它是未定义的


我遗漏了什么?

所以这个问题的答案是Cordova自动将
Cordova.js
文件包含在Project www on build中。所以我所要做的就是包含
标签


也就是说,我没有必要复制
cordova.js
文件并将其包含到我的js文件夹中。希望这可能会对某些人有所帮助。

您是否已将包含
cordova.js
script
标记添加到html文件中?在检查cordova API之前,您还需要等待
deviceready
事件触发。您需要显示HTML文件和代码,以便我们了解问题所在。@frank是的,添加了cordova.js。我用index.html文件中的一些代码更新了我的帖子。正如您所见,它等待deviceready启动,但它仍然没有定义。@frank我从
project\u文件夹/platform/android/platform\www
文件夹中复制了我的
cordova.js
文件。这是正确的文件吗?您需要将标签
添加到
index.html
文件中。您将
cordova.js
文件复制到哪里?是的,我已将其添加到我的js文件夹中<代码>
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);

    });
}