Phonegap:解析内容://从本机文件选择器获取的URI

时间:2015-01-29 16:49:32

标签: javascript android cordova phonegap-plugins cordova-plugins

我正在使用Cordova Filechooser plugin从我的Android设备中选择文件。该插件返回content:// URI(例如content://com.android.providers.media.documents/document/image%3A15756)。我正在调用 resolveLocalFileSystemURI ,以便能够解析内容URL并在画布上绘制图像。但是由于某种原因,URI没有得到正确解析。

E.g。返回的条目的fullPath是 /com.android.providers.media.documents/document/image%3A15756 对于内容URI content://com.android.providers.media.documents/document/image%3A15756

有什么想法吗?我的代码如下:

window.resolveLocalFileSystemURI(_this.target_image, function (fileEntry) {
            var img = new Image();
            alert(fileEntry.fullPath);
            img.src = URL.createObjectURL(fileEntry.fullPath);
            img.onload = function() {
                    combiner_context.drawImage(img, 0, 0);
                    combiner_context.putImage(0, img.height, _that.editor_img);


            };
        }, function () {
            alert('Could not load selected file. Please try again.');
        });

1 个答案:

答案 0 :(得分:3)

我能够转换为" content://"对"文件的URI://"使用此插件的URI:https://www.npmjs.com/package/cordova-plugin-filepath

获得"文件://" URI,我可以使用Cordova的resolveLocalFileSystemURL()函数。

希望这有帮助。

if (fileUri.startsWith("content://")) {
    //We have a native file path (usually returned when a user gets a file from their Android gallery)
    //Let's convert to a fileUri that we can consume properly
    window.FilePath.resolveNativePath(fileUri, function(localFileUri) {
        window.resolveLocalFileSystemURL("file://" + localFileUri, function(fileEntry) {/*Do Something*/});
    });
}