IBM Worklight 6.0 — имитация камеры Cordova в Mobile Browser Simulator не работает

Код моей камеры отлично работал в WL 5.0.6, и симулятор мобильного браузера правильно отображал изображение. Теперь я перешел на WL 6.0 и получаю следующую ошибку при использовании предварительного просмотра в симуляторе мобильного браузера и использовании имитации камеры Cordova для получения поддельного изображения.

Я использую Chrome для предварительного просмотра.

Not allowed to load local resource: file:///C:/Users/Administrator/cordova/internal/sim/camera/camera1_m.jpg wljq.js:2374

Код похож на этот

navigator.camera.getPicture(onSuccess, onFail, { quality: 50, 
destinationType: Camera.DestinationType.FILE_URI }); 

Обратите внимание, что если я использую DATA_URL, с симулятором мобильного браузера все в порядке. Просто FILE_URI, похоже, не работает с симулятором мобильного браузера.


person JFJF    schedule 22.06.2013    source источник


Ответы (2)


Симулятор мобильного браузера Worklight 6.0 поддерживает API-интерфейсы Cordova 2.6. Для navigator.camera.getPicture в WL 6.0 могут использоваться следующие типы назначения:

Camera.DestinationType = {
DATA_URL : 0,       // Return image as base64 encoded string  
FILE_URI : 1,       // Return image file URI  
NATIVE_URI : 2      // Return image native URI (eg. assets-library:// on iOS or   content:// on Android)
}; 

Пример:

navigator.camera.getPicture(
        function(data) {            
document.getElementById('camera_status').innerHTML = "Success: picture  located at " +     data;

 var img = document.getElementById('camera_image');
                img.style.display = "none";
        },
        function(e) {
            console.log("Error getting picture: " + e);
            document.getElementById('camera_status').innerHTML = "Error getting picture.";
        },
        { quality: 50, destinationType: navigator.camera.DestinationType.FILE_URI, sourceType: navigator.camera.PictureSourceType.SAVEDPHOTOALBUM, encodingType: fileType});

Попробуйте очистить кеш браузера, а затем обязательно примите диалоговое окно разрешений апплета при запуске Mobile Browser Simulator. Также убедитесь, что ваши права доступа к файлам разрешают передачу из папки C:/Users//cordova/internal/sim/camera/, где апплет хранит содержимое изображения sim-камеры.

Справочник по API камеры Cordova 2.6: http://docs.phonegap.com/en/2.6.0/cordova_camera_camera.md.html

person nspeete    schedule 25.06.2013

Забавно, что для вашей проблемы уже есть документ по устранению неполадок.

http://www-01.ibm.com/support/docview.wss?uid=swg21614861

Похоже, что DATA_URL не работает в WLv5, а (если вы правы) FILE_URI не работает с WLv6.

person MHeiss    schedule 25.06.2013
comment
Я только что попробовал. Обратный вызов onSuccess получает неправильный URI, который действительно указывает на папку пользователя: C:/Users/‹username›/cordova/internal/sim/camera/... - person MHeiss; 25.06.2013