2

我最近使用最新版本的 phonegap 更新了一个完美运行的 android 应用程序。

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

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

navigator.camera.getPicture

这用于打开画廊并返回如下 URL:

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

它现在打开(在果冻豆上)一个新的白色应用程序“文档”(我认为),并返回:

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

这打破了它之后的一切。

1) 我怎样才能回到原来的回报?

如果我不能,我怎样才能将这个新的回报更改为文件条目?

4

1 回答 1

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;
   }
};
于 2014-03-14T20:13:55.457 回答