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

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

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

【问题讨论】:

    标签: javascript html cordova ibm-mobilefirst


    【解决方案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)。

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多