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.