【问题标题】:Appgyver/Cordova: Not able to display captured imageAppgyver/Cordova:无法显示捕获的图像
【发布时间】:2015-01-24 11:39:25
【问题描述】:

我能够成功地从照片库和相机中抓取图像,并能够使用FileTransfer plugin 将它们发送到服务器以保存它们。但是唯一不起作用的代码是显示图像:(当我提醒 ImageURI 时,它给了我以下路径:

file://storage/sdcard0/Android/data/com.apgyver.freshandroid/cache/.Pic.jpg

我不确定我是否缺少任何插件或某些代码?

function getImage() {
    // Retrieve image file location from specified source
    navigator.camera.getPicture(uploadPhoto, function(message) {
    alert('get picture failed');
},{
    quality: 50, 
    destinationType: navigator.camera.DestinationType.FILE_URI,
    sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
}
    );

}

function uploadPhoto(imageURI) {

    //alert(imageURI); return false;
    var image = document.getElementById('myImage');
    image.src = imageURI;

    var options = new FileUploadOptions();
    options.fileKey="file";
    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType="image/jpeg";

    var params = new Object();
    params.value1 = "test";
    params.value2 = "param";

    options.params = params;
    options.chunkedMode = false;

    var ft = new FileTransfer();
    ft.upload(imageURI, url, win, fail, options);
}

它确实将路径分配给src,但无法显示图像。

感谢您的帮助。

【问题讨论】:

    标签: javascript android cordova cordova-plugins steroids


    【解决方案1】:

    您必须缺少 ID 为 myImageimg 元素,该元素的 widthheight 设置为某个值使其可见,并给出display: block。您的代码严格遵循相机插件使用示例中的代码,并且由于它正确进入服务器,您应该拥有所需的所有插件和权限。

    【讨论】:

    • 我已经设置了 display: block 的内联样式以及宽度和高度,但仍然无法显示图像:(
    • @atif:很抱歉,但没有看到实际案例,真的很难看出它们是否还有其他问题。你可以把你的 apk 发给我,它的配置中有android:debuggable=“true”。这样我就可以用调试器运行它来查看实际问题。如果您愿意,我的电子邮件在我的个人资料中。
    • 我有 id 为“myImage”的图像元素,我也尝试了这段代码: var image = document.getElementById('myImage'); image.style.display = '块'; image.src = imageURI;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多