Хобрук: Ваш путь к мастерству в программировании

Cordova Network and Camera API возвращает неопределенное значение

Создание моего первого приложения Cordova 4.0, и мне очень нужна помощь, так как я покажу демо этого приложения tmrw...

Когда я пытаюсь получить доступ к API информации о сети и API камеры (navigator.connection и navigator.camera соответственно), они всегда возвращают значение undefined.

У меня есть это право в моем манифесте Android:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

А вот и установленные плагины:

org.apache.cordova.camera 0.3.3 "Camera"
org.apache.cordova.console 0.2.11 "Console"
org.apache.cordova.device 0.2.12 "Device"
org.apache.cordova.network-information 0.2.13 "Network Information"

Я также скопировал файл cordova.js из папки платформы и добавил тег <SCRIPT TYPE="text/javascript" src="js/cordova.js"></SCRIPT> в свой index.html. Также вот пример моего кода, где я пытаюсь получить доступ к API камеры:

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

function onDeviceReady() {
    $(document).on('click', '.camera', function(){

        if (!navigator.camera) {
            alert("Camera API not supported", "Error");
            return;
        }
        var options =   {   quality: 50,
            destinationType: Camera.DestinationType.DATA_URL,
            sourceType: 1,      // 0:Photo Library, 1=Camera, 2=Saved Album
            encodingType: 0     // 0=JPG 1=PNG
        };
        navigator.camera.getPicture( function(imgData) { return imgData; }, function() { alert('Error');}, options);

    });
}

Когда я запускаю это, я всегда получаю предупреждение «Camera API не поддерживается», что означает, что оно не определено.

Что мне не хватает?


  • Вы добавили тег script, содержащий cordova.js, в свой html-файл? Также вам нужно дождаться срабатывания события deviceready, прежде чем проверять API кордовы. Вам нужно показать свой HTML-файл и свой код, чтобы мы могли понять, в чем проблема. 16.11.2014
  • @frank Да, добавлен cordova.js. Я обновил свой пост некоторым кодом из моего файла index.html. Как видите, он ожидает готовности устройства к срабатыванию, но он все еще не определен. 16.11.2014
  • @frank Я получил свой файл cordova.js, скопировав его из папки project_folder/platform/android/platform_www. Это правильный файл? 16.11.2014
  • вам нужно добавить тег <script type="text/javascript" src="cordova.js"></script> в ваш файл index.html. куда вы копируете файл cordova.js ? 16.11.2014
  • Да, я добавил это в свою JS-папку. <script type="text/javascript" src="js/cordova.js"></script> 16.11.2014
  • Я решил это, слава богу, и вам :), когда я изменил его на ‹script type=text/javascript src=cordova.js›‹/script› и позволил Cordova автоматически добавить файл, это сработало. 16.11.2014

Ответы:


1

Итак, ответ на этот вопрос заключался в том, что Кордова автоматически включает файл cordova.js в проекты www при сборке. Так что все, что мне нужно было сделать, это включить <script type="text/javascript" src="cordova.js"></script>tag.

То есть мне не нужно было копировать файл cordova.js и включать его в свою JS-папку. Надеюсь, это может помочь кому-то.

17.11.2014
Новые материалы

Прогресс в технологии Трансформеров часть 3
Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

Приключения в Javascript, часть 1
Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

Понимание дженериков в TypeScript: подробное руководство
Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..