我的相机代码在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似乎没有使用移动浏览器模拟器。
答案 0 :(得分:4)
Worklight 6.0移动浏览器模拟器支持Cordova 2.6 API。对于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});
尝试清除浏览器缓存,然后确保在移动浏览器模拟器启动时接受小程序权限对话框。另外,请确保您的文件权限允许从C:/ Users // cordova / internal / sim / camera /文件夹进行传输,因为applet存储了相机SIM卡图像内容。
Cordova 2.6 Camera API参考: http://docs.phonegap.com/en/2.6.0/cordova_camera_camera.md.html
答案 1 :(得分:0)
很有趣,已经有针对您的问题的疑难解答文档。
http://www-01.ibm.com/support/docview.wss?uid=swg21614861
看起来DATA_URL在WLv5中不起作用,而(如果你是对的话)自WLv6起FILE_URI无效。