如何在 ibm worklight 中打开本机摄像头

Posted

技术标签:

【中文标题】如何在 ibm worklight 中打开本机摄像头【英文标题】:How to open native camera in ibm worklight 【发布时间】:2012-08-10 11:04:24 【问题描述】:

Ibm Worklight 有调用本机应用程序的示例,但这是在 Worklight 本身中创建的,例如:module_09_1_android_CombiningNativeAndWebPages 在此示例中的 android 文件夹本身中,他们创建了一个活动“com.AndroidShowNativePage.HelloNative”(包名称),该活动从中调用那个javascript

但是,我需要从工作灯调用本机相机“com.android.camera”,这可能吗?如果是,请分享您的知识。提前致谢!!

【问题讨论】:

【参考方案1】:

在您的应用程序中使用此功能。默认情况下,Cordova 插件安装在 worklight 应用程序中。你只需要调用它的功能

function takePicture() 

    navigator.camera.getPicture(
        function(data) 
            var img = dom.byId('camera_image');
            img.style.visibility = "visible";
            img.style.display = "block";
            //img.src = "data:image/jpeg;base64," + data;
            img.src = data;
            dom.byId('camera_status').innerhtml = "Success";
        ,
        function(e) 
            console.log("Error getting picture: " + e);
            dom.byId('camera_status').innerHTML = e;
            dom.byId('camera_image').style.display = "none";
        ,
         quality: 50, destinationType: navigator.camera.DestinationType.FILE_URI, sourceType : navigator.camera.PictureSourceType.CAMERA);
;

【讨论】:

destinationType 不应为 FILE_URI。此示例必须使用 DATA_URI 才能工作。 其实好像需要DATA_URL(注意URL而不是URI【参考方案2】:

为什么要编写适用于 Android 而不适用于 iPhone 的代码? Worklight 使用 PhoneGap,因此您可以使用 camera.getPicture 并将使用相机拍摄的 base64 图像获取到您的应用程序。

navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );

有关详细信息,请参阅 PhoneGap 文档 (http://docs.phonegap.com/en/1.0.0/phonegap_camera_camera.md.html)。

【讨论】:

以上是关于如何在 ibm worklight 中打开本机摄像头的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight - 本机组件的全球化/本地化

IBM Worklight 6.1 - 如何打开 https 链接?

IBM Worklight 6.1 - 无法重新生成 iPhone 本机文件夹

使用 IBM Worklight 访问本机相机、照片、日历和语音记录

IBM Worklight - 是不是可以将 UINavigationController 添加为起始本机页面?

IBM Worklight 闪屏