IBM Worklight 6.0 - имитация камеры Cordova в симуляторе мобильного браузера не работает

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

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

Не разрешается загружать локальный ресурс: 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 не работает с симулятором мобильного браузера.

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 камеры.

Cordova 2.6 Ссылка на API камеры: http://docs.phonegap.com/en/2.6.0/cordova_camera_camera.md.html

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

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

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

Другие вопросы по тегам