Search code examples
ioscordovachildbrowser

Open local pdf file with Child Browser - Cordova on iOS


I've been reading around but I didn't get to a solution yet. I'm downloading a pdf file with FileTransfer successfully. It is placed in a folder called Documents and the location looks like this: /Users/myusername/Library/Application Support/iPhone Simulator/5.1/Applications/C62E5802-56A8-48BF-B57C-695801F3C8D6/HelloWorld.app/Documents/11.pdf

I am trying to use ChildBrowser to open it and I had no success so far.

The code to open is this:

cordova.exec("ChildBrowserCommand.showWebPage", path );

When path is external (e.g. http://www.google.com/) it works well (with the domain whitelisted).

I have tried all of these paths with no success:

file:///Users/myusername/Library/Application Support/iPhone Simulator/5.1/Applications/C62E5802-56A8-48BF-B57C-695801F3C8D6/HelloWorld.app/Documents/11.pdf

file:////Users/myusername/Library/Application Support/iPhone Simulator/5.1/Applications/C62E5802-56A8-48BF-B57C-695801F3C8D6/HelloWorld.app/www/Documents/11.pdf

file:///Documents/11.pdf

What do I need to do to get to it? Looking at the app location above, I cannot find the www folder either (I assume it has been packaged)

This is all in the simulator, cordova 2.1.0 and latest ChildBrowser .


Solution

  • I found another question here that answers mine. link

    The uri to file should be like this:

    file:///Users/{username}/Library/Application%20Support/iPhone%20Simulator/5.0/Applications/F815A351-44EC-46E8-AD00-A7D775FF9ECC/Documents/11.pdf
    

    Providing the file has been downloaded into the Documents folder of the app and not placed in the www folder. Get the url like this:

    fp = entry.fullPath;
    urld = "file://" + fp;
    //open the file in ChildBrowser
    cordova.exec("ChildBrowserCommand.showWebPage", encodeURI(urld) );