【问题标题】:PhoneGap - Camera image from Win8 PhonePhoneGap - 来自 Win8 手机的相机图像
【发布时间】:2014-04-29 17:08:33
【问题描述】:

我正在尝试为 iOS、Android 和 Windows Phone 开发一个跨平台应用程序。我完成了大部分编码工作,目前正在测试应用程序。我正在使用 DevExtreme 工具(来自 DevExpress),据我所知,他们使用 PhoneGap 来打包原生应用程序。我在我的 Android 和 Windows 手机上加载了该应用程序。

我的要求是使用相机拍照并将其发送到远程服务器而不将图像保存到设备。

我使用“Camera.destination”作为“DATA_URL”,它似乎在 andoird 和 iOS 上运行良好。图像被发送到服务器并且图像不会显示在“已保存的照片”(图库/相册)中。据我了解,我假设图像在这些设备的内存中,并且一旦应用程序关闭,Base64 字符串就会被丢弃。

Windows phone 不会发生这种情况。我试过了,图像似乎总是保存在光盘上。我仍然看到该应用程序已成功将图像发送到远程服务器。我的要求是永远不要将图像保存在光盘上。

 navigator.camera.getPicture(onSuccess, onFail, {
            quality: 50,
            destinationType: Camera.DestinationType.DATA_URL
        });

使用 DATA_URL 是否正确?如果是这样,Windows Phone 不支持吗?

【问题讨论】:

  • 我遇到了同样的问题,并发现此选项仅适用于 Windows phone 8。因此我设计了自定义相机,它为我完成了这项工作。你可以从 msdn 那里得到一个关于这个的例子。

标签: cordova devextreme


【解决方案1】:

如果你用过

destinationType: Camera.DestinationType.FILE_URI 

它会将其保存到一个临时文件夹并在他们离开应用程序时将其删除。这也是他们推荐的用例: http://docs.phonegap.com/en/1.2.0/phonegap_camera_camera.md.html

或者,您可以在使用之前添加检查以查看 Camera.DestinationType.DATA_URL 是否已设置且有效。可能是其他手机类型在没有设置时有默认值,而Windows phone程序没有。

除此之外,您始终可以硬编码 0 或 1(取决于应如何接收)而不是变量 (Camera.DestinationType.Data_URL)。

【讨论】:

  • 我尝试了硬编码 (0 - DATA_URL) 但它仍然将其保存到磁盘。
  • 我认为它看起来像:navigator.camera.getPicture(onSuccess, onFail, { quality: 50, destinationType: 0 });如果这就是你所做的,但它仍然失败,这听起来像是 PhoneGap 中的一个错误,因为他们在文档顶部附近说这些设置适用于 Windows 手机。我会跟进,看看我是否能找到确切的问题。
  • 默认情况下,如果我理解正确,所有 devextreme 应用程序都使用 Cordova 2.9.0
  • 您对这方面的任何发展有任何想法吗?我一直在尝试,但除了可能使用自定义相机外,我找不到解决方法
猜你喜欢
  • 1970-01-01
  • 2013-05-14
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 1970-01-01
相关资源
最近更新 更多