Phonegap文件AP​​I更改,应用已损坏

时间:2014-03-12 20:28:45

标签: android cordova cordova-plugins

我最近使用最新版本的phonegap更新了一款功能完善的Android应用。

我发现任何与FILE API有关的事情都已完全破裂。 我已经开始更改我的代码以修改此问题,但有一个问题我正在努力解决。

我允许用户使用以下选择图像:

navigator.camera.getPicture

这用于打开图库并返回如下网址:

file:///emulated/0/storage/android/test.jpg

它现在打开(在果冻豆上)一个新的白色应用"文件" (我想),并返回:

"content://com.android.providers.media.documents/document/image%3A42014"

这会破坏它之后的一切。

1)我怎样才能回到过去?

如果我不能,如何将此新回复更改为文件条目?

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;
   }
};