IBM Worklight 6.0 - 移动浏览器模拟器中的 Cordova 相机模拟不起作用

Posted

技术标签:

【中文标题】IBM Worklight 6.0 - 移动浏览器模拟器中的 Cordova 相机模拟不起作用【英文标题】:IBM Worklight 6.0 - Cordova camera simulation in the Mobile Browser Simulator doesn't work 【发布时间】:2013-06-22 15:58:40 【问题描述】:

我的相机代码在 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 似乎不适用于移动浏览器模拟器。

【问题讨论】:

【参考方案1】:

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/ 文件夹传输,因为这是小程序存储相机 sim 图像内容的位置。

Cordova 2.6 相机 API 参考: http://docs.phonegap.com/en/2.6.0/cordova_camera_camera.md.html

【讨论】:

【参考方案2】:

有趣的是,已经有针对您的问题的故障排除文档。

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

看起来 DATA_URL 在 WLv5 中不起作用,而(如果您是对的)FILE_URI 在 WLv6 之后不起作用。

【讨论】:

我刚试过。 onSuccess 回调收到错误的 URI,它确实指向用户文件夹:C:/Users//cordova/internal/sim/camera/...

以上是关于IBM Worklight 6.0 - 移动浏览器模拟器中的 Cordova 相机模拟不起作用的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0 - 如何将日志写入文件并将它们发回?

IBM Worklight 6.0 - 如何更改 wlclient.properties 中的 wlServerHost 值

IBM Worklight 6.0 - 添加 Worklight 文件条目选项时遇到问题

IBM Worklight 6.0 - 内容根目录和本地 Worklight 服务器设置

IBM Worklight 6.0 - 访问 Worklight Server 时出错

IBM Worklight 6.0 - Worklight Starter Dojo 示例损坏?