0

我目前正在做一个需要使用移动相机设备拍摄照片并将它们发送到远程服务器的项目。

问题是我们不需要移动原生应用程序,而是一个将所有代码部署在远程服务器上的 Web 应用程序。例如,可以制作照片并将其部署到服务器的 JavaScript 代码。我想知道是否可以以这种方式使用相机功能?

我在带有 Andoird 4.0.3 的三星 Galaxy S3 上尝试了 gwt-phonegap 1.8.1 的 Geolocation API,其中 Web 应用程序托管在远程服务器上并且运行良好,但是当我尝试打开相机并拍照时,只有一个 TODO图片显示。是我这边的问题还是这个功能还没有实现,或者它不应该那样工作?

这是我的代码中的一个片段,显示了实际的相机使用情况

PictureOptions options = new PictureOptions(25); 
        options.setDestinationType(PictureOptions.DESTINATION_TYPE_DATA_URL); 
        options.setSourceType(PictureOptions.PICTURE_SOURCE_TYPE_CAMERA); 

        final Image image = new Image(); 

        if (phoneGap.getCamera() != null) { 
          message += "camera was detected and we are trying to take a photo"; 

          phoneGap.getCamera().getPicture(options, new PictureCallback() { 

            public void onSuccess(String data) { 
//        display.setImageData("data:image/jpeg;base64," + data); 
              image.setUrl("data:image/jpeg;base64," + data); 
              panel.add(image); 
            } 

            @Override 
            public void onFailure(String message) { 
              Window.alert("Photo not successful"); 
            } 

          }); 

        } else { 
          message += "camera was not detected"; 
          message += " " + phoneGap.getClass().getName(); 

        } 

        label.setText(message);
4

1 回答 1

1

您可以使用<input type=file>具有特殊accept属性值(需要用户交互)或getUserMediaAPI 的 an。

有关详细信息和一些示例代码,请参见http://www.html5rocks.com/en/tutorials/getusermedia/intro/

在 GWT 中,您必须使用 JSNI 或Elemental 库才能使用getUserMediaAPI。

于 2012-08-23T10:07:33.240 回答