jQuery Mobile: Flackernde/ blickende Übergänge

In jQuery Mobile (1.2) kann es bei der Verwendung von

<meta name="viewport" content="width=[...]user-scalable=no[...]">

zu einem Folgefehler kommen, der sich durch flackernde bzw. blickende Buttons bei den Übergängen erkenntlich macht. Das Problem konnte ich unter Android 2.3.* feststellen, bei dem Versuch eine gefixte Navigation (position: fixed;) im Fußbereich zu platzieren.
Als Workaround für die flackernden/ blickenden Übergänge scheint es leider keine besser Lösung zu geben, als die Animationen komplett zu deaktivieren:

$('#page_id').live('pagecreate', function () {
    $.mobile.defaultDialogTransition = "none";
    $.mobile.defaultPageTransition = "none";
});

JQuery Mobile: Cannot call methods on button prior to initialization

Bei der Erstellung von Buttons via Javascript in JQuery Mobile stößt man u.U. auf folgende Fehlermeldung:

cannot call methods on button prior to initialization

In der Doku von JQuery Mobile gibt es keinerlei Hinweise zur Lösung des Problems. Allerdings muss das erstellte Element nur als Button „registriert“ werden. Das Problem verschwindet unter Verwendung folgendes Snippets:

$('#container').append('html_code des Buttons'); //Erstellung des Buttons
$('.neuer_button').button(); //Registrierung des Buttons
$('.neuer_button').button('refresh'); //Aktualisieren/ Rendern des Buttons

Android-Debugging: Unable to open sync connection!

Beim Debuggen seiner Android-Apps per USB an einem Smartphone, kann es zu folgender Fehlermeldung kommen:

 java.io.IOException: Unable to open sync connection!

Dieses Problem kann behoben werden, indem man das USB-Debugging auf dem Smartphone deaktiviert und anschließend wieder aktiviert.

jQuery: Error-Handling von cross-domain Ajax-Requests

Bei Einsatz von Ajax zum dynamischen Nachladen von Inhalten (bspw. in einer HTML5-App), gibt es Besonderheiten zu beachten, wenn man diese domainübergreifend (cross-domain) durchführt: Setzt man keinen „timeout„-Parameter, ist ein Abfangen von Fehlern der Anfrage nicht möglich (im Erfolgsfall werden aber trotzdem die entsprechenden Events abgefeuert).

Um nun die Fehler abzufangen, hilft der folgende Javascript-Code weiter:

var req = $.ajax({url:'http://example.com&callback=?',
	dataType:'json',
	timeout:10000
});
req.done(function () {
	//Aktionen bei erfolgreicher Anfrage
});
req.fail(function () {
	//Aktionen bei fehlgeschlagener Abfrage
});

Links in externem Browser (Phonegap/ Cordova 2)

Externe Verlinkungen werden unter Phonegap (Cordova) standardmäßig mit dem WebView der App geöffnet. Möchte man allerdings, dass eine Verlinkung mit einem externen Browser geöffnet wird, genügt es nicht nur (wie in einigen Foren behauptet), das target-Attribut auf „_blank“ zu setzen. Man muss zudem in der Cordova-Konfiguration die Access-Origin editieren. Diese erlaubt standardmäßig, dass alle Webseiten im WebView geöffnet werden.
Unter Android befindet sich unter res/xml/ eine config.xml-Datei. Öffnet man diese stößt man auf folgende Zeile

<access origin=".*"/>

Kommentiert man diese Zeile aus und setzt das target-Attribut der betreffenden Links auf „_blank„, wird die Verlinkung in einem externen Browser geöffnet oder ggf. ein Auswahl-Dialog der verfügbaren Browser dargestellt. Die Cordova-Dokumentation beschreibt auch die Funktionsweise der Access-Origin und deren Konfiguration für andere Betriebssysteme.