Cordova Network和Camera API返回undefined

时间:2014-11-16 19:07:54

标签: javascript android cordova phonegap-plugins cordova-plugins

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

当我尝试访问网络信息API和相机API(分别为navigator.connectionnavigator.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"

我还复制了platform-folder中的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);

    });
}

当我运行此操作时,我总是不支持&#34; Camera API&#34;警报,意思是它未定义。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

因此,这个问题的答案是Cordova自动将cordova.js文件包含在项目www on build中。所以我所要做的就是包含<script type="text/javascript" src="cordova.js"></script>标签。

也就是说,我复制cordova.js文件并将其包含在我的JS文件夹中是不必要的。希望这可能有助于某人。