我正在使用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.');
});
答案 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*/});
});
}