Java 如何从Cordova Android插件返回文件URL

Java 如何从Cordova Android插件返回文件URL,java,android,file,cordova,url,Java,Android,File,Cordova,Url,我有一个混合Cordova Android应用程序,它使用一个自定义(即由我编写的)插件。除此之外,我还使用插件从外部源获取文件资源。插件中的相关Java代码如下所示 public static String grabFile(String url,String fName) { File file = new File(filePath,fName); if ((null != file) && file.exists()) return file.toURI().toSt

我有一个混合Cordova Android应用程序,它使用一个自定义(即由我编写的)插件。除此之外,我还使用插件从外部源获取文件资源。插件中的相关Java代码如下所示

public static String grabFile(String url,String fName)
{
 File file = new File(filePath,fName);
 if ((null != file) && file.exists()) return file.toURI().toString();

 URL aurl;
 try{aurl = new URL(url);}catch(Exception e){return "";}  

 try(InputStream fIn = aurl.openStream();FileOutputStream fOut = new 
  FileOutputStream(file))
 {
  try
  {   
   byte[] buffer = new byte[2048];
   int length;

   while ((length = fIn.read(buffer)) != -1) {fOut.write(buffer,0,length);}
   return file.toURI().toString();
  } 
  finally
  {
   fIn.close();
   fOut.close();   
  }
 }   
 catch(Exception e)
 {
  Feedback.postBackInfo(e.getMessage() + "grab file");
  return "";
 }
}
其中
filePath
Feedback.postBackInfo
等来自插件代码的其他地方。这通常会返回如下内容

file:/data/user/0/com.example.myapp/files/filename.png'
然后我在前端(Webview)Javascript中使用它来分配图像源和HTML元素背景

img.src = file:/data/user/0/com.example.myapp/files/filename.png


然而,这是行不通的。显然,我需要在这里提供的URL的结构不同。它应该如何构造

我曾考虑过删除这个问题,但为了其他人的利益,我决定将它保留在这里。简单的答案是
文件:/data/user…
需要更改为
file:///data/user...
。为什么返回的URI具有不同的格式,我不知道

element.style.backgroundImage = 'url(' + 
file:/data/user/0/com.example.myapp/files/filename.png' + ')';