Cordova 3.4中如何解析file:// URI的本地文件系统URI

3

我使用Cordova 3.4在Genymotion模拟器上运行以下代码:

window.resolveLocalFileSystemURL('file:///storage/emulated/0/DCIM/Camera/1394726081689.jpg', function(entry) {
    console.log(entry.fullPath);
    console.log(entry.toURL());
    entry.file(fileSuccess, fail);
});

我在logcat中看到了以下内容:

I/chromium( 3022): [INFO:CONSOLE(28)] "file:///storage/emulated/0/DCIM/Camera/1394726081689.jpg", source: file:///android_asset/www/js/pdf.js (28)
I/chromium( 3022): [INFO:CONSOLE(29)] "cdvfile://localhost/temporary/file://storage/emulated/0/DCIM/Camera/1394726081689.jpg", source: file:///android_asset/www/js/pdf.js (29)
W/System.err( 2928): java.io.FileNotFoundException: File: cdvfile://localhost/persistent/file://storage/emulated/0/DCIM/Camera/1394726081689.jpg does not exist.
W/System.err( 2928):    at org.apache.cordova.file.FileUtils.getFileMetadata(FileUtils.java:953)
W/System.err( 2928):    at org.apache.cordova.file.FileUtils.access$400(FileUtils.java:53)
W/System.err( 2928):    at org.apache.cordova.file.FileUtils$14.run(FileUtils.java:220)
W/System.err( 2928):    at org.apache.cordova.file.FileUtils$23.run(FileUtils.java:325)
W/System.err( 2928):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err( 2928):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err( 2928):    at java.lang.Thread.run(Thread.java:841)

相同的代码在iOS上运行良好。我只尝试将这部分代码传递给resolveLocalFileSystemURL

DCIM/Camera/1394726081689.jpg 

希望entry.file使用此URL:

cdvfile://localhost/temporary/DCIM/Camera/1394726081689.jpg

但是这会返回一个缺少协议的错误。

我相信这是一个bug,但我想请有人确认一下。谢谢!

1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接