Widget selber erstellen oder wie kann ich es realisieren?

B

Benjamin-Do

Mitglied
Thread Starter
Dabei seit
03.09.2007
Beiträge
704
Reaktionspunkte
20
Hallo,
wie kann ich ein Widget erstellen, welches mir beim Aufruf des Widget ein bestimmtes Programm startet?
 
Zuletzt bearbeitet:
wuerd ich auch gern wisssen...
 
Das geht mit Dashcode recht einfach. Wobei das Programm in meinem Beispiel erst beim Click auf einen Button im Widget startet. Aufgerufen werden die Widgets ja, wenn du nach dem Booten das erste mal ins Dashboard gehst. Wenn du unten stehenden Code in die "show" bzw. "load"-Funktion kopierst, kann die Applikation auch beim Laden des Widgets oder dem Anzeigen des Dashboards geöffnet werden. Ob das emphehlenswert ist, musst du entscheiden.

(Dashcode installieren, was Teil von Xcode ist)

Ein neues Projekt (Dashboard Widget) in Dashcode anlegen.
Typ: Eigene (Leere Vorlage)

Das Aussehen des Widgets nach Belieben gestalten. Aus der Bibliothek (Fenster->Bibliothek einblenden) dann einen Button hinzufügen.

Rechtsklick auf den Button und Events->onclick auswählen.

In der Bibliothek den Reiter "Code" (neben Elemente") wählen, dort dann im Drop Down-Menü "Externer Zugriff" wählen. Dort befindet sich der Code-Block "Programm anzeigen". Diesen einfach in die automatisch angelegte onclick-Funktion reinziehen und den Application Identifier auf das gewünschte Programm ändern.

Das sieht dann z.B: so aus:

Code:
function meinClickHandler(event)
{
    
var applicationIdentifier = "com.Google.GoogleEarthPlus";

widget.openApplication(applicationIdentifier);

}

Zum Testen auf "Ausführen" klicken.

Den Application Identifier findest du im Programmordner (Rechtsklick auf das PRogramm->Paketinhalt anziegen) in der Info.plist unter der Variable: CFBundleIdentifier. Google Earth hat z.B.: "com.GoogleEarthPlus"

Dann das Widget bereitstellen (Ablage -> Widget bereitstellen).

Viel Erfolg.
 
Zuletzt bearbeitet:
-- gelöscht --
 
Zuletzt bearbeitet:
Einfacher wäre ein Dock-Icon ;)

Ja, aber damit kann man sich ein Zweit-Dock bauen, wenn das erste schon voll ist. Aktive Ecke mit Dashboard und dort auch ein Widget-Feld mit lauter Mini-Icons für Apps ist ein brauchbarer Schnellstarter, wenn man nicht Spotlight nutzen will.
 
-- gelöscht --
 
Zuletzt bearbeitet:
Hey chris25...
Ich habe den Anfang nicht wirklich verstanden...Was ist Dashcode? Wo muss ich was anlegen? Show Load Funktion? .... :(
 
Hey chris25...
Ich habe den Anfang nicht wirklich verstanden...Was ist Dashcode? Wo muss ich was anlegen? Show Load Funktion? .... :(

Dashcode ist das Tool von Apple, mit dem man Widgets erstellen kann. Es ist zwar recht einfach zu verstehen, insbesondere wenn man schonmal JavaScript für Webseiten verwendet hat, aber vielleicht ist Quicksilver für dich die schnellere Lösung :)
 
Hmm...eigentlich wollte ich ja eben selber ein Widget machen wo man nur einen Button drueckt und dann oeffnet sich ein Programm (vllt. sogar im Hintergrund) ! Ich habe mir das Dashcode angeschaut und es hat satte 1GB zum downloaden. Hier hab ich damit n Problem , das wuerde eeeehwig dauern :-(
Wie kann ich das noch realisieren?
 
Hmm...eigentlich wollte ich ja eben selber ein Widget machen wo man nur einen Button drueckt und dann oeffnet sich ein Programm (vllt. sogar im Hintergrund) ! Ich habe mir das Dashcode angeschaut und es hat satte 1GB zum downloaden. Hier hab ich damit n Problem , das wuerde eeeehwig dauern :-(
Wie kann ich das noch realisieren?


Widgets kann man theoretisch auch nur mit einem Texteditor bauen (ging vor Leopard und Dashcode nicht anders), was aber sehr umständlich ist. Wenn du den Download scheust, findest du Xcode auch auf der Leopard-DVD. Wird zwar eine etwas ältere Version sein, aber für Dashcode dürfte das egal sein.

Um eine Vorstellung der Dateien eines Widgets zu bekommen, schau Dir einfach mal den Paketinhalt eines Widgets an. In der Zeit, in der man versucht das zu verstehen, ist Xcode runtergeladen ;)
 
Hmm....also ich versteh echt nur Bahnhof was alles in dem Paketinhalt drin ist :p
Gibt es vielleicht Irgendwo eine "WidgetVorlage" wo man auf einen Button klicken kann und es oeffnet sich etwas?
 
Hmm....also ich versteh echt nur Bahnhof was alles in dem Paketinhalt drin ist :p
Gibt es vielleicht Irgendwo eine "WidgetVorlage" wo man auf einen Button klicken kann und es oeffnet sich etwas?

Zum Üben: (Achtung, ersetzt das alte Widget, da der Identifier gleich bleibt!)

Wir nehmen das Website Widget von Deiner Seite als Beispiel:

Zeige den Paketinhalt an und öffne die Datei script.js in einem Texteditor.

Suche dort die Funktion:

Code:
function doubleClickText() {
widget.openURL(widget.preferenceForKey(addIdentifier("url")));
}

ersetze diese durch

Code:
function doubleClickText() {
var applicationIdentifier = "com.apple.calculator";
widget.openApplication(applicationIdentifier)
}

Speichere die Datei und installiere das Widget (wie gesagt das alte WIdget wird überschrieben). Ein Doppelclick auf das Widget (bzw. den Text der Website oder das "No URL") sollte nun den Taschenrechner öffnen.
 
Wow das funktioniert ja :)
Jetzt noch eine Frage, trotz der super Hilfe:
Mit was ersetze ich das "com.apple.calculator" ?
Ich habs schon probiert mit z.B "Safari" oder "iTunes" tut sich aber nix...
 
Wow das funktioniert ja :)
Jetzt noch eine Frage, trotz der super Hilfe:
Mit was ersetze ich das "com.apple.calculator" ?
Ich habs schon probiert mit z.B "Safari" oder "iTunes" tut sich aber nix...

Der Identifier steht in der info.plist der jeweiligen Programme.

Paketinhalt des jeweiligen Programms öffnen -> Contents -> Info.plist öffnen.

Dort steht der Key unter Bundle-Identifier. für Safari heisst er "com.apple.Safari", für iTunes "com.apple.iTunes". (Nach jeder Änderung musst du das Widget neu installieren.)
 
Okay das mit Safari und Itunes hat funktioniert :)
Soorrrrrry ,aber ich habe mir selber ein Skript geschriebn und es als Programm gespeichert und will dieses aufrufen. Dort gibt es ja kein info.plist....
weisst du noch weiter? DAAAANKE
 
Da muss ich im Moment leider passen.
 
Mist :(
Aber danke fuer die grossartige Hilfe :)
Weiss denn jemand anderes wie ich das nun mache?
 
So ich habs rausgefunden! Ich habe mein Skript als "ProgrammBundle" gespeichert! Die .plist sieht so aus:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleAllowMixedLocalizations</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>applet</string>
<key>CFBundleIconFile</key>
<string>applet</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Internetwarten Kopie</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>aplt</string>
<key>LSRequiresCarbon</key>
<true/>
<key>WindowState</key>
<dict>
<key>name</key>
<string>ScriptWindowState</string>
<key>positionOfDivider</key>
<real>274</real>
<key>savedFrame</key>
<string>238 124 439 476 0 0 1024 746 </string>
<key>selectedTabView</key>
<string>result</string>
</dict>
</dict>
</plist>


Was muss ich daraus nun als Identifier nehmen?
mfg Chris
 
Wir nehmen das Website Widget von Deiner Seite als Beispiel:

Zeige den Paketinhalt an und öffne die Datei script.js in einem Texteditor.

Suche dort die Funktion:

Code:
function doubleClickText() {
widget.openURL(widget.preferenceForKey(addIdentifier("url")));
}

ersetze diese durch

Code:
function doubleClickText() {
var applicationIdentifier = "com.apple.calculator";
widget.openApplication(applicationIdentifier)
}

Speichere die Datei und installiere das Widget (wie gesagt das alte WIdget wird überschrieben). Ein Doppelclick auf das Widget (bzw. den Text der Website oder das "No URL") sollte nun den Taschenrechner öffnen.

Der Identifier steht in der info.plist der jeweiligen Programme.

Paketinhalt des jeweiligen Programms öffnen -> Contents -> Info.plist öffnen.

Dort steht der Key unter Bundle-Identifier. für Safari heisst er "com.apple.Safari", für iTunes "com.apple.iTunes". (Nach jeder Änderung musst du das Widget neu installieren.)


1000 Dank!
:clap:
Konnte genau dies hierfür brauchen:

https://www.macuser.de/forum/thema/...trol-startet?p=8200398&viewfull=1#post8200398

:drum:
 
Zurück
Oben Unten