0

DreameweaverCS6内で最新バージョンのphonegapソフトウェアを使用しています。github Webサイトから最初のサンプルHTMLファイルを取得し、それをDWにインポートしました。次に、そのアプリをテストして、すべてが私の場所や地図などで機能しました。

ただし、Androidスマートフォンで写真を撮るか、写真を選択できるようにコードを変更しました。そのたびに、アプリを閉じます。

HTMLコードは次のとおりです。

<!DOCTYPE html>
<html>
  <head>
    <title>Capture Photo</title>
    <script type="text/javascript" charset="utf-8" src="phonegap.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 = imageData;
    }

    function onPhotoURISuccess(imageURI) {
      var largeImage = document.getElementById('largeImage');

      largeImage.style.display = 'block';
      largeImage.src = imageURI;
    }

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

    function capturePhotoEdit() {
      // Take picture using device camera, allow edit, and retrieve image as base64-encoded string  
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 100, allowEdit: false }); 
    }

    function getPhoto(source) {
      // Retrieve image file location from specified source
      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 100, 
        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="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br>
    <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
    <img style="display:none;" id="largeImage" 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              = "com.xxxxxxxx.DKGApp"
    version         = "1.0.0">

    <name>DKG App</name>

    <description>
        An app that allows uploading their random images they take to our facebook website!
    </description>

    <author href    ="http://www.xxxxxxxx.com"  email       ="mail@xxxxxxxx.com">
        David
    </author>

    <gap:splash src="splash.png" />

    <icon src="icon.png" gap:role="default" />

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

    <preference name="android-minSdkVersion" value="7" />
    <preference name="orientation" value="portrait" />
    <preference name="target-device" value="universal" />
</widget>

これが機能し、毎回クラッシュしないようにするために必要なものが不足していますか?

ありがとう!

4

2 に答える 2

0

メモリ不足エラーが発生しています。DATA_URL は使用しないでください。3000x2000 ピクセルの base64 でエンコードされた画像を返すと、アプリで使用可能なすべてのメモリが消費されます。代わりに FILE_URI を使用してください。

于 2012-07-11T20:11:33.847 に答える
0

私も同じ問題に直面しました。foreground-camera-plugin を使用して問題を修正しました。

このリンクにアクセスして、手順に従ってください。

https://code.google.com/p/foreground-camera-plugin/

于 2013-05-20T13:50:33.087 に答える