Hi all.

I'm a beginner with Cordova development and I wanted to share my experience and offer some code bits to fix them.

At first I think I found a bug. Here is full information:

http://stackoverflow.com/questions/23794121/ajax-responses-messed-up-in-cordova-application-on-windows-phone-8-1

I have no idea why it's the case - maybe Microsoft has changed something in Windows 8.1 and now the MiniBrowser_ScriptNotify calls are completely async.

I think the fix mentioned in https://issues.apache.org/jira/browse/CB-4873 should be implemented anyway because it seems more safe and correct solution to have a separate callback function for each request instead of the current single window.__onXHRLocalCallback. I added a comment there but I'm not sure whether to create a new ticket or Cordova team will reopen the existing one if necessary.


And some more info while looking forward to Windows Phone 8.1. I found that to build and deploy my Cordova app for Windows Phone 8.1 SDK, I had to change some things in the Cordova VS project template. At first, I had to add redirects for assemblies in CordovaDeploy.csproj file:

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>

Also, I had to change CordovaDeploy\Program.cs

GetIsolatedStore()
replace with
GetIsolatedStore(null)

And one more problem, maybe not related to WP8.1 but to the fact that I'm running the emulator in VMWare machine. Sometimes Corodova Deploy failed to access debugOutput.txt file on the emulator. I did some debugging and found out that it tries to access the file too soon. Thus I added some hacky workaround code:


string dbFilePath = Path.DirectorySeparatorChar + "debugOutput.txt";
int waitForFileToAppear = 0;
while (!isoFile.FileExists(dbFilePath))
{
    Thread.Sleep(1000);
    waitForFileToAppear++;
    if (waitForFileToAppear >= 60)
throw new InvalidOperationException("Cannot wait for debug output file anymore");
}

and now it works fine.

I hope my code bits and experience will be useful for other developers and maybe some of the mentioned fixes will get into the Cordova source.

Regards,
Maris


Reply via email to