2

Build.PhoneGap サイトのサンプル コードを使用して電話から画像をキャプチャすると、「未定義のメソッド 'getPicture' を呼び出すことができません」というエラーが表示されます。

次のサンプル コードを index.html と次の config.xml で使用して、圧縮したディレクトリを PhoneGap にアップロードし、Thunderbolt Android デバイスにアプリケーションをインストールし、try catch で capturePhoto の「navigator.camera.getPicture」部分を囲みました。 () 関数 エラーが発生します。これで何が起こっているのか知っている人はいますか?前もって感謝します。

完全なサンプルの URL:

http://docs.phonegap.com/en/1.0.0/phonegap_camera_camera.md.html

インデックス コード (コメントなし):

<!DOCTYPE html>
<html>
  <head>
    <title>Capture Photo</title>

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

    var pictureSource;   // picture source
    var destinationType; // sets the format of returned value 

    document.addEventListener("deviceready",onDeviceReady,false);

    function onDeviceReady() {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;
    }

    function onPhotoDataSuccess(imageData) {
      var smallImage = document.getElementById('smallImage');
      smallImage.style.display = 'block';
      smallImage.src = "data:image/jpeg;base64," + imageData;
    }

    function onPhotoURISuccess(imageURI) {
      var largeImage = document.getElementById('largeImage');
      largeImage.style.display = 'block';
      largeImage.src = imageURI;
    }

    function capturePhoto() {
      try
      { //this throws the error
        navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 });
      } catch(exc){
        alert(exc.message);
      }
    }

    function capturePhotoEdit() {
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true }); 
    }

    function getPhoto(source) {
      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
        destinationType: destinationType.FILE_URI,
        sourceType: source });
    }

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

    </script>
  </head>
  <body>
    <button onclick="capturePhoto();">Capture Photo</button> <br>
    <button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br>
    <button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br>
    <button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br>
    <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
    <img style="display:none;" id="largeImage" src="" />
  </body>
</html>

構成ファイル:

<?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.phonegap.SampleImg"
        versionCode="10" 
        version   = "1.1.0">

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

    <name>PhoneGap SampleImg</name>

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

    <author href="https://build.phonegap.com" email="myemail@somedomain.com">
        My Name
    </author>
    <!-- to enable individual permissions use the following examples -->
<feature name="http://api.phonegap.com/1.0/battery"/>
<feature name="http://api.phonegap.com/1.0/camera"/>
<feature name="http://api.phonegap.com/1.0/contacts"/>
<feature name="http://api.phonegap.com/1.0/file"/>
<feature name="http://api.phonegap.com/1.0/geolocation"/>
<feature name="http://api.phonegap.com/1.0/media"/>
<feature name="http://api.phonegap.com/1.0/network"/>
<feature name="http://api.phonegap.com/1.0/notification"/>

</widget>
4

3 に答える 3

3

このリファレンスが必要であることがわかりました

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

それ以外の

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

他の誰かがこのbuild.phonegapに反対している場合、適切なphonegap.jsファイルをターゲットとするプラットフォームに一致させます。

于 2012-08-01T17:36:11.677 に答える
0

http://phonegap.com/download/から最新バージョンの cordova をインストールし、ファイルに追加します。あなたの問題が解決されることを願っています.cordovaのバージョンが古いため、この機能はサポートされていない可能性があります.

于 2013-07-10T06:29:42.247 に答える