【问题标题】:Phonegap FILE_URI, source of imagePhonegap FILE_URI,图片来源
【发布时间】:2015-05-02 18:49:22
【问题描述】:

Phonegap 和相机插件有问题。我试图在我的视图中显示拍摄的照片,但它不起作用。我可以让它与 DATA_URL 一起使用,但我需要它与 FILE_URI 一起使用(因为他们建议这样做!)

这是我的代码,但我猜它不在代码中,因为使用 DATA_URL 它可以工作,但使用 FILE_URI 它不能,尽管我的代码与文档中的代码完全相同。

$('#uploadBusinessCard').on('click', function() {
    console.log("capture this foto!");
    navigator.camera.getPicture(onSuccess, onFail, {
        quality: 10,
        destinationType: Camera.DestinationType.FILE_URI
    });
});

function onSuccess(imageURI) {
    console.log("on success!");
    var image = document.getElementById('myImageIdee');
    image.src = imageURI;
}

function onFail(message) {
    alert('Failed because: ' + message);
}

工作的代码几乎是一样的:

$('#uploadBusinessCard').on('click', function() {
    console.log("capture this foto!");
    navigator.camera.getPicture(onSuccess, onFail, {
        quality: 10,
        destinationType: Camera.DestinationType.DATA_URL
    });
});

function onSuccess(imageData) {
    var image = document.getElementById('myImageIdee');
    image.src = "data:image/jpeg;base64," + imageData;
}

function onFail(message) {
    alert('Failed because: ' + message);
}

【问题讨论】:

  • 在哪个平台上?设备?操作系统版本?
  • 我只在 iOS 版本为 7 的 iPad 2 上使用 iOS 我现在正在检查是否可以获取图像的源并将该源上传到我的 PHP 服务器,并在数据库中填写该 URL。我知道这比上传直接图像要复杂得多,但它不起作用,我必须继续......
  • 是否调用了 onSuccess?你可以记录网址吗?
  • 是的 onSuccess 正在被调用。有趣的是,正确的 URL 记录在控制台中。文件://var/etc/etc/etc/picture_14.jpg

标签: cordova camera file-uri


【解决方案1】:

如果您在 ipad 上使用 phonegap 桌面应用和 phonegap 开发者应用,则存在一个已知问题,即如果您使用 FILE_URI,则不会显示图像

https://github.com/phonegap/phonegap-app-developer/issues/174

https://github.com/phonegap/phonegap-app-developer/issues/248

【讨论】:

  • 谢谢。这是我需要的确认。可能它按预期工作,只是我无法通过手机开发者应用程序对其进行测试。
  • 这也发生在我身上,在真实设备上运行ionic run android --live-reload(此命令在我的设备上安装应用程序并在我更改代码时刷新)
【解决方案2】:

试试这个。

$('#uploadBusinessCard').on('click', function() {
    console.log("capture this foto!");
    navigator.camera.getPicture(onSuccess, onFail, {
        quality: 10,
        destinationType: Camera.DestinationType.FILE_URI,
        saveToPhotoAlbum: true
    });
});

function onSuccess(imageURI) {
    console.log("on success!");
    var image = document.getElementById('myImageIdee');
    image.style.display = 'block';
    image.src = imageURI;
}

function onFail(message) {
    alert('Failed because: ' + message);
}

【讨论】:

  • 我认为您添加了“saveToPhotoAlbum: true”,这很好,但它不起作用。不过我觉得很奇怪。我有多个console.logs,在我更改了图像标识符的源之后,我检查了image.src和console.log,它准确地说明了图像路径,但它仍然没有显示出来:S跨度>
  • 可能是因为我正在使用 Phonegap 桌面应用程序通过 WiFi 将应用程序“流式传输”到我的 iPad 以进行测试,是因为它无法正常工作吗?因为当我在代码中更改一个小东西时,它会将 phonegap 服务器的 ip 地址添加到代码行的前面......这可能是一个不受监督的问题
  • 图像现在消失了,而不是说找不到文件...所以这是朝着正确方向迈出的一步。
  • 所以您正在使用 phonegap 桌面应用程序和 phonegap ios 应用程序来测试您的代码?你应该提到过
  • 只能在手机上运行,​​不能在桌面上运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多