2016-05-14 5 views
1

Мое приложение для 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

Ничего не работает. Я трачу много времени на то, чтобы сделать это. Пожалуйста, помогите мне.

+0

Вы видите сообщение «ready» при запуске приложения. (Без нажатия кнопки предупреждения)? – NineBerry

+0

Да, работает каждый раз. –

+1

Попробуйте использовать 'adb logcat', чтобы увидеть, есть ли какие-либо значимые подсказки или предупреждения при запуске приложения. – NineBerry

ответ

1

Я испытал это с сервером 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="[email protected]"> 
     Hardeep Shoker 
    </author> 

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

Он работает с вашим xml. Большое спасибо:) –

0

Вы используете переменную с именем image в двух разных местах. Но это две разные переменные. Получите ссылку на изображение, где она вам нужна, в функции onSuccess.

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

Я изменил это, но это не помогло. Все еще не работает. –

Смежные вопросы