I have an app that runs fine using android phonegap 1.2 and jqm 1.0, and I’m attempting to port it to windows phone 7.5.
When the index.html page loads, the first thing is does is use a $.mobile.loadpage to load another html page. all i get on the wp7.5 app is the ‘error loading page’ message flash up briefly. if i put an href to the page on index.html i get the same error. to summarise:
- running the index.html in a desktop browser works
- running the app on android works
- running the app on wp7.5 without calling another page works
- jqm in ie (on wp7.5) can load other pages
- if i link to a public jqm site from within the app, the public site works (ie jqm will load pages that are located on the www)
- i have put $.support.cors = true; in the js code to enable cross site xhr requests
it seems to me that the only issue is when jqm tries to load a local file via ajax. i assume this has something to do with default security settings in the webbrowser control that phonegap uses?
can anyone shed any light on this?
I suspect this is WP7’s insistence that all pages loaded from the “local website” are actually loaded from IsolatedStorage.
In the newer Phonegap / Cordova WP7 project templates there is a file maintained per build, CordovaSourceDictionary.xml which will do this for you.
Just make sure that whatever files you want to be able to navigate to / load (yes, you have to do it for images too) have a Build Actiion of “Content” in your project and when you build it, this xml will be updated automatically.
When your app runs the first thing Cordova does on WP7 is go through all the files in this XML file and copy them to isolatedStorage so they can be loaded / navigated to.