代码之家  ›  专栏  ›  技术社区  ›  Sebastian M

Phonegap摄像头不工作

  •  1
  • Sebastian M  · 技术社区  · 9 年前

    我的Android应用程序需要拍照,但相机插件不起作用。当我点击按钮时,什么也没发生。

    索引.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>
    

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

    配置.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

    什么都不管用。我浪费了很多时间试图使这项工作成功。请帮帮我。

    2 回复  |  直到 9 年前
        1
  •  1
  •   NineBerry    9 年前

    我已经用phonegap构建服务器对此进行了测试,您提供的HTML代码在使用这个最小值时可以正常工作(与我的其他答案不同) config.xml 文件和html文件。此外,请确保不要上传 phonegap.js 将Zip归档文件中的内容发送到生成服务器。在构建期间将自动添加一个额外的。

    <?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
  •  0
  •   NineBerry    9 年前

    在两个不同的位置使用名为image的变量。但这是两个不同的变量。在onSuccess函数中获取所需的图像引用。

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