【问题标题】:ReferenceError: Camera Is Not DefinedReferenceError:相机未定义
【发布时间】:2014-09-26 20:00:57
【问题描述】:

我正在尝试开发一个使用相机功能的PhoneGap 应用程序。我正在关注https://build.phonegap.com/plugins/768 的插件文档,但没有运气。每次我尝试使用该功能时,在我的 Android 设备上构建和测试时都会收到错误“ReferenceError: Camera is not defined”。

这是我的 index.html 的头部的样子:

<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript" src="cordova.js"></script>

这是我用来使用相机功能的脚本:

<script>
            function take_picture(){
                try{
                    navigator.camera.getPicture(cameraSuccess, cameraError, {
                        quality: 50,
                        destinationType: Camera.DestinationType.DATA_URL
                    });
                }catch(e){
                    alert(e);
                }
            }

            function cameraSuccess(imageData){
                try{
                    $("#camera_image").attr('src', imageData);
                }catch(e){
                    alert(e);
                }
            }

            function cameraError(message){
                try{
                alert('Failed because: '+message);
                }catch(e){
                    alert(e);
                }
            }
            </script>

因为我使用的是PhoneGap Build,所以这里是我使用的 config.xml 标签:

<gap:config-file platform="android" parent="/manifest">
    <uses-permission name="android.permission.CAMERA" />
</gap:config-file>

<feature name="http://api.phonegap.com/1.0/camera"/>

<feature name="Camera">
    <param name="android-package" value="org.apache.cordova.CameraLauncher" />
    <param name="ios-package" value="CDVCamera" />
</feature>

【问题讨论】:

  • 仅对phonegap.js/cordova.js 使用其中之一,而不是同时使用两者。这可能会解决问题
  • 另外,对于 phonegap 构建,您不需要将所有这些都添加到您的 config.xml,尝试删除您拥有的并添加 &lt;gap:plugin name="org.apache.cordova.camera" version="0.2.9" /&gt;
  • 我采纳了您的建议,并取得了进展。感谢那。现在我收到错误“失败,因为:相机已取消”
  • 好的,做了更多的研究,结果我不得不将我的 config.xml 的 AndroidManifest 修改中的启动模式值从“singleInstance”更改为“标准”。这似乎纠正了最后一个问题。感谢您的帮助。

标签: android ios cordova phonegap-build


【解决方案1】:

我遇到了同样的问题,我通过三个步骤解决了它

javascript包括

我只使用了 cordova.js 并删除了所有 phonegap.js

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>

安装插件

您必须使用命令行安装相机插件;只有xml不起作用

cordova plugin add org.apache.cordova.camera

使用正确的android-package

您使用的包是org.apache.cordova.CameraLauncher,这是错误的,会给您 NullPointer 异常。 可以像这样包含正确的包

<feature name="Camera">
    <param name="ios-package" value="CDVCamera" />
    <param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />
</feature>

试一试! 谢谢:)

【讨论】:

  • 现在要下载的最新版本是cordova plugin add cordova-plugin-camera
猜你喜欢
  • 2020-09-19
  • 2012-08-24
  • 2019-07-31
  • 1970-01-01
  • 2015-10-04
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多