mardi 10 septembre 2013

BlackBerry10 et Ajax

blackberryDans monde le of 10 BlackBerry in a le choix de développer Nos applications web at pur (HTML5, javascript, CSS) avec WebWorks, le avec ou en natif (c ++ et QML) frame waterfalls.

Dans WebWorks, the unbeatable est proposée webview: Elle contient toutes offers les HTML5 l'on veut, of the video the list a des contacts en passant par le localStorage ou les différents capteurs du terminal.

Par contre, Côte waterfalls, if l'on avait l' idée de faire de l'hybride et d'avoir, for example, navigation in natif et l'affichage du contenu en web avec une webview, attend nous une well apre surprise: the minimalist est webview, available from ne contient pas toutes sous les API WebWorks et même est fundas buggée sur certains points.

L ' a CES points est l'AJAX, mais une solution exists, voici comment s ' s'en sortir.

L'Ajax, modernité charger feels dynamiquement permet des données sur a serveur, in javascript, quitter sans page in progress, pose des problèmes de Sécurité: Theoriquement, rien n ' empêché code javascript encombrée d' insert a script malveillant irait publier sur a serveur inconnu L'ensemble de vos données personnelles. Du coup, plupart du temps, sur a site web classique, les scripts doivent come du serveur qui a servi website ou d ' a CDN connu (Google, Yahoo, etc.).

Or, Côté mobile webpages peuvent être embarquees dans l'application (terminal you at local South) et des faire appel à scripts JavaScript distances. UN OS ne peut donc idéalement or bloquer tous sites les distances (trop contraignant, on ne pourrait développer besides HTML5 application), tous or enable les (trop rises in tone).

C ' est pourquoi, sur iOS or Android, if l'on use Apache Cordova, on trouve une «white»: every application defined une liste des servers autorisés à lui fournir du JavaScript code. CE niveau de Sécurité été ajouté par Cordova.

Côté WebWorks, an XML file permet de cette whitelist configurer des domaines authorized pour l' Ajax. Par contre waterfalls Côté, rien n ' est Prévu: tous les appels AJAX blocks sont et renvoient l 0: signe qu'il ont été blocks pour des raisons de Sécurité.

Pourquoi BlackBerry n ' n'a pas permis à the webview of Cascades d ' avoir la même richesse the WebWorks Web view. -Ils etaient presses? N ' avaient-ils pas Prévu certains combiner web et natif essayeraient?

UN des avantages of waterfalls est son langage, le QML: a melange of Javascript langage et Clé/valeur tout simple. En de si vous savez encoder Javascript et vous avez déjà fait vos armes sur des Marcos comme Sencha Touch ou Enyo.js, vous savez QML encoder at et vous pouvez faire une application BlackBerry10!

Et bonne nouvelle c'est qu' in Javascript, Côte QML, les appels Ajax blocks ne sont pas! The webview et et le natif peuvent communiquer facilement suggestion between eux. Neither attached nor deux, nous voici donc dans shipments a palliatif à l'ancienne: une passerelle between web et natif afin de pouvoir communiquer avec monde le extérieur via Ajax.

Web Côte, ecrase function $.ajax utilisée par jQuery ou par Zepto notre.Celle ci envoie l'ensemble des Français et L'appel options AJAX au natif.Elle stocké web Côte au passage une fonction goes traiter le Résultat et envoie ajouter cette fonction au natif.You natif fait Appel Ajax in tyre au maximum les options (POST or GET, type les parametres, etc.) du $.ajax jQueryUne fois le Résultat obtenu, le natif envoie au web le resultat in lui redonnant fonction previously Reçu ajouter.Le web s'appelle the fonction accrual in lui passant les résultats dans recus sentence ajax.Le web appelle «success» callback ou «error» initialement passée à $.ajax afin de traiter le Résultat.

Ainsi, aucun besoin de changer vos habitudes, appelez vos fonctions $.ajax, $.post ou $.agarra comme avant!

Vous trouverez a code d'exemple de tout cela sur Gist ici. «Array» CE fonctionne pour jQuery et Zepto mais vous pourrez sûrement l'adapter à d'autres frames.

download_gist

Meme if nous n' WYSIWYM pas tel quel ce bout de code (nous savoir mieux UN packed ca, a jour in vous montrera) L'essentiel est là. Nous WYSIWYM cette technique avec succès sur plusieurs BlackBerry apps in cours de développement.

Nous sommes d'accord qu'il s'agit d ' une très belle, mais sur ce coup là solution, BlackBerry aurait pu mieux anticiper les besoins de ses developers.

Aucun commentaire:

Enregistrer un commentaire