Cordova:从内容Uri获取文件Uri

时间:2015-10-07 18:45:43

标签: android cordova cordova-plugins ngcordova

我使用Apache Cordova实现了一个应用程序,并使用了$ cordovaCamera插件。 当$ cordovaCamera的源类型是Camera.PictureSourceType.PHOTOLIBRARY时,输出类似于

“内容://com.android.providers.media.documents/document/image”

并且,当我使用Camera.PictureSourceType.CAMERA时,我得到了

“文件:///storage/emulated/0/Android/data/com.ionic.viewapp/cache/image.jpg”

在我的情况下,格式“file:// ..”更有用。

可以从内容URI中获取文件URI吗?

我找到了很多这个问题的答案,但所有解决方案都适用于JAVA,而非Javascript。

2 个答案:

答案 0 :(得分:4)

我发现了问题。 我正在使用Ionic和Ionic View进行设备测试。

当我尝试cordova-plugin-filepath时,它无效。但我发现问题是在Ionic View中这个插件失败了。

所以,我在服务中写了这个函数:

// data is the return of $cordovaCamera.getPicture.

    getFilePath: function(data){ 
             var deferred = $q.defer();
             window.FilePath.resolveNativePath(data, function(result) {
                    deferred.resolve('file://' + result;);
                  }, function (error) {
                      throw new Error("");
                  });

             return deferred.promise;
         }

返回我需要它的文件URI。 然后,我在手机中安装了apk,它的工作原理。 现在,我可以存储从相机或图库获取的图像并上传到服务器。

答案 1 :(得分:0)

上面的答案中有错误。

window.FilePath.resolveNativePath成功后,其结果已格式为:file:///...,因此无需预先file://