我最近使用最新版本的phonegap更新了一款功能完善的Android应用。
我发现任何与FILE API有关的事情都已完全破裂。 我已经开始更改我的代码以修改此问题,但有一个问题我正在努力解决。
我允许用户使用以下选择图像:
navigator.camera.getPicture
这用于打开图库并返回如下网址:
file:///emulated/0/storage/android/test.jpg
它现在打开(在果冻豆上)一个新的白色应用"文件" (我想),并返回:
"content://com.android.providers.media.documents/document/image%3A42014"
这会破坏它之后的一切。
1)我怎样才能回到过去?
如果我不能,如何将此新回复更改为文件条目?
答案 0 :(得分:3)
我花了几天时间,所以希望这可以拯救别人的痛苦。 此解决方案仅适用于VIDEO文件(但图像文件修复应非常相似)。
在使用resolveFileSystemURI / resolveFileSystemURL之前,只需通过此函数运行位置返回(取决于您使用的是哪个版本的phonegap)。
function phoneGapSuperFix(mediaURL){
//android 4.3 returns
//content://com.android.providers.media.documents/document/video%3A38215
//and we need it to return
//content://media/external/video/media/38215
//this checks if it needs fixing, then fixes it or leaves it
var parts = mediaURL.split("//");
parts1 = parts[1].split("/");
if (parts1[0] == "com.android.providers.media.documents"){
var newMediaURL;
var endClip = mediaURL.substring(mediaURL.lastIndexOf("/") + 1);
endClip = decodeURIComponent(endClip);
endClip = endClip.replace(":","/");
endClip = endClip.split("/");
newMediaURL = "content://media/external/video/media/" + endClip[1];
return newMediaURL;
} else {
return mediaURL;
}
};