Se loguer grâce à votre identifiant/mot de passe ADC
Télécharger xcode313_2736_developerdvd.dmg
, c’est un gros fichier donc soyez patient !
Un
Le signe +
en bas à gauche permet d’ouvrir le gestionnaire de widgets.
Dès que le manager de widgets est ouvert, des croix apparaissent sur chacun des widgets de votre dashboard, il ne vous reste plus qu’à fermer les widgets et de facto les supprimer de votre dashboard.
Image d’imageshack.us et du site apple
Mac OS X 10.4.2 or later: Installing and removing Dashboard widgets
http://support.apple.com/kb/HT2254
Nous allons créer un widget qui va passer des valeurs en $_GET
à un fichier index.php
qui fonctionne sur un site en local. L’adresse que nous allons utiliser est la suivante, voici un exemple de ce que le widget va appeler : http://127.0.0.1/widget_apple/index.php?textField1=200&horizontalSlider1=0.21739130434782608
Pour mémoire, si vous souhaitez installer rapidement et simplement un site en local qui fonctionne avec le couple php-mysql, reportez-vous aux articles de ce blog :
.php
Voilà le code du fichier qui sera appelé par notre widget. Un simple echo
des valeurs passés en $_GET
.
<?php /* Les valeurs vont être envoyées en $_GET à votre fichier index.php */ /* http://127.0.0.1/widget_apple/index.php?textField1=200&horizontalSlider1=0.21739130434782608 */ /* $textField1 = $_GET['textField1']; $horizontalSlider1 = $_GET['horizontalSlider1']; */ /* output the value textField1 */ echo ('<h2>textField1 => '.$_GET['textField1'].'</h2>'); /* output the value horizontalSlider1 */ echo ('<h2>horizontalSlider1 => '.$_GET['horizontalSlider1'].'</h2>'); ?> |
dashcube_W_a.dcproj
Le projet dashcube_W_a.dcproj
comprend deux vues : frontend et backend.
Une vue du frontend dans dashcode
Une vue du backend dans dashcode
dashcube_W_a.dcproj
C’est la dorsale de votre projet avec le fichier http://127.0.0.1/widget_apple/index.php
, tout est contenu dans main.js
Le code de main.js
/* This file was generated by Dashcode. You may edit this file to customize your widget or web page according to the license.txt file included in the project. */ // // Function: load() // Called by HTML body element's onload event when the widget is ready to start // function load() { dashcode.setupParts(); } // // Function: remove() // Called when the widget has been removed from the Dashboard // function remove() { // Stop any timers to prevent CPU usage // Remove any preferences as needed // widget.setPreferenceForKey(null, dashcode.createInstancePreferenceKey("your-key")); } // // Function: hide() // Called when the widget has been hidden // function hide() { // Stop any timers to prevent CPU usage } // // Function: show() // Called when the widget has been shown // function show() { // Restart any timers that were stopped on hide } // // Function: sync() // Called when the widget has been synchronized with .Mac // function sync() { // Retrieve any preference values that you need to be synchronized here // Use this for an instance key's value: // instancePreferenceValue = widget.preferenceForKey(null, dashcode.createInstancePreferenceKey("your-key")); // // Or this for global key's value: // globalPreferenceValue = widget.preferenceForKey(null, "your-key"); } // // Function: showBack(event) // Called when the info button is clicked to show the back of the widget // // event: onClick event from the info button // function showBack(event) { var front = document.getElementById("front"); var back = document.getElementById("back"); if (window.widget) { widget.prepareForTransition("ToBack"); } front.style.display = "none"; back.style.display = "block"; if (window.widget) { setTimeout('widget.performTransition();', 0); } } // // Function: showFront(event) // Called when the done button is clicked from the back of the widget // // event: onClick event from the done button // function showFront(event) { var front = document.getElementById("front"); var back = document.getElementById("back"); if (window.widget) { widget.prepareForTransition("ToFront"); } front.style.display="block"; back.style.display="none"; if (window.widget) { setTimeout('widget.performTransition();', 0); } } if (window.widget) { widget.onremove = remove; widget.onhide = hide; widget.onshow = show; widget.onsync = sync; } // testcode function showMypage(event) { var websiteURL = document.getElementById("cfgValueWebsiteUrl").value; var textField1 = document.getElementById("textfield1").value; var horizontalSlider1 = document.getElementById("horizontalSlider1").object.value; var websiteURI = "textField1="+textField1+"&"+"horizontalSlider1="+horizontalSlider1; widget.openURL(websiteURL+"?"+websiteURI); } // EOF |
Il faudra indiquer au widget vers quel fichier envoyé les valeurs récoltées via votre widget. Nous l’indiquons par défaut directement dans la backend.
Le rendu dans la navigateur
Les deux valeurs sont issus de ce qui a été saisi dans le widget. le champs textField1
affiche le chiffre 200 et le champs horizontalSlider1
affiche la valeur numérique qui est le résulat du déplacement du curseur.
Conclusion : L’élaboration d’un widget sur la plate-forme Apple est donc trivial. Il reste que votre widget peut devenir beaucoup plus sophistiqué que ce que nous venons de montrer. Comme pour les applications développées sous Flex, ce type d’application est appeler à se généraliser Cf Flex , Curl et Twitter – créer une application en Flex interfacé avec Twitter . Il deviendra même un facteur décisif pour rejoindre définitivement l’univers Mac et qui quitter à jamais la plate-forme Windows, “hasta la vista baby…” si vous voyez ce que je veux dire. !
Un tutorial bien fait sur la création d’une ” Xcode 3 Beep Application”
Un des vidéos de la série Mac vs PC, sur vista justement…