【问题标题】:Phonegap camera doesn't workPhonegap 相机不工作
【发布时间】:2016-09-10 15:53:01
【问题描述】:

我的 Android 应用需要拍照,但相机插件不起作用。当我单击按钮时,没有任何反应。

index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Capture Photo</title>
    <meta name="viewport" content="width=device-width,height=device-height,initial-scale=1"/>
    <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
    <script type="text/javascript" charset="utf-8">    
    document.addEventListener("deviceready",onDeviceReady,false);
      function onDeviceReady() {              
          alert("ready");
        }
    function capturePhoto()
    {
      navigator.camera.getPicture(onSuccess, onFail, { quality: 50, 
      destinationType: Camera.DestinationType.FILE_URI }); 
    }

    function onSuccess(imageURI) {
      var image = document.getElementById('myImage');
      image.src = imageURI;
    }

    function onFail(message) {
      alert('Failed because: ' + message);
    }    

</script>
  </head>
  <body>
    <button onclick="capturePhoto()">Capture</button> <br>
    <button onclick="onDeviceReady()">alert</button> <br>
    <img id="myImage" src="" />
  </body>
</html>

我添加了第二个按钮只是为了检查按钮是否有效(确实有效)。

config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns= "http://www.w3.org/ns/widgets"
        xmlns:gap= "http://phonegap.com/ns/1.0"
        id= "testaplikacji"
        versionCode= "1"
        version = "1.0.0" >
    <name>Camera</name>
    <description>Camera test</description>
    <author>Sebastian</author>
    <gap:platform name="android" />
    <gap:plugin name="org.apache.cordova.dialogs" />
    <gap:plugin name="org.apache.cordova.camera" /> 
    <gap:plugin name="cordova-plugin-camera" />

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


    <access origin="*"/>
    <gap:config-file platform="android" parent="/manifest" mode="add" xmlns:android="http://schemas.android.com/apk/res/android">
        <uses-permission android:name="android.permission.CAMERA"></uses-permission>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    </gap:config-file>

</widget>

我尝试了有和没有权限。我尝试了不同的插件。我尝试了这个要点:https://gist.github.com/dhavaln/2238017

还有本教程中的代码: https://www.youtube.com/watch?v=KlBfmHDZjmg

没有任何作用。我浪费了很多时间试图使这个工作。请帮我。

【问题讨论】:

  • 您在启动应用程序时是否看到“就绪”消息。 (不点击警报按钮)?
  • 是的,每次都有效。
  • 尝试使用adb logcat查看运行应用时是否有任何有意义的提示或警告输出。
  • 当我点击“捕获”按钮时,我得到了这个: I/chromium: [INFO:CONSOLE(15)] "Uncaught TypeError: Cannot read property 'getPicture' of undefined",来源:文件: ///data/data/.../files/downloads/app_dir/index.html (15)
  • 当您收到deviceready 通知后navigator.camera 仍然未定义,这意味着相机插件不存在或无法正常工作。

标签: javascript android html phonegap-plugins phonegap-build


【解决方案1】:

我已经使用 phonegap 构建服务器对此进行了测试,并且在将这个最小的 config.xml 文件与您的 html 文件一起使用时,您提供的 HTML 代码可以工作(与我的其他答案有所不同)。此外,请确保不要将 Zip 存档中的 phonegap.js 上传到构建服务器。在构建过程中会自动添加一个额外的。

<?xml version="1.0" encoding="UTF-8" ?>
    <widget xmlns   = "http://www.w3.org/ns/widgets"
        xmlns:gap   = "http://phonegap.com/ns/1.0"
        id          = "com.stackoverflow.example.SO37227132"
        versionCode = "10" 
        version     = "1.0.0" >

    <!-- versionCode is optional and Android only -->

    <name>PhoneGap Example</name>

    <description>
        An example for phonegap build docs. 
    </description>

    <author href="https://build.phonegap.com" email="support@phonegap.com">
        Hardeep Shoker 
    </author>

    <platform name="android" />
    <plugin name="org.apache.cordova.camera" source="pgb" />
</widget>

【讨论】:

    【解决方案2】:

    您在两个不同的地方使用了一个名为 image 的变量。但这是两个不同的变量。在 onSuccess 函数中获取您需要的图像参考。

    function onSuccess(imageURI) 
    {
          var image = document.getElementById('myImage');
          image.src = imageURI;
    }
    

    【讨论】:

    • 我改变了这个,但没有帮助。还是不行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    相关资源
    最近更新 更多