URI-Scheme aus Info.plist im System regstrieren!

F

flaggschiff

Neues Mitglied
Thread Starter
Dabei seit
01.04.2015
Beiträge
11
Reaktionspunkte
0
Hallo, ich hoffe ihr könnt mir helfen?

Ich hab mein Java-Programm in ein App-Bundle umgewandelt. Das Starten der App funktioniert auch.
Ich möchte nun aber das meine App über ein URI-Scheme z.B. "mactest://" gestartet wird.
Das funktioniert auch soweit, allerdings nicht sofort nach dem Ändern der Info.plist!

Hier der Eintrag für die URI-Schemes in der Info.plist:
Code:
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLName</key>
    <string>MacTest</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>mactest</string>
    </array>
  </dict>
</array>

Wenn ich jetzt im Browser z.B. "mactest://irgendwas" eingeben, startet er mein Programm zwar, aber auch erst nachdem ich die App von einem Mac auf einen anderen übertragen habe, zuerst ging das leider auch nicht!

Wenn ich jetzt ein weiteres URI-Scheme hinzufügen will...
Code:
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLName</key>
    <string>MacTest</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>mactest</string>
      [COLOR=#ff0000]<string>mactest2</string>[/COLOR]
    </array>
  </dict>
</array>
...und die Info.plist abspeichere und im Browser "mactest2://irgendwas" eingeben, funktioniert das nicht! Warum???

Wie kann ich MacOS nun mitteilen, dass ein neues URI-Scheme hinzugefügt wurde???

Ich kann mir schlecht vorstellen, dass MacOS alles Info.plist-Dateien auf der Festplatte sucht, wenn jemand mal eine URI-Scheme aufruft!

Vielen Dank!
 
Danke! Mit
Code:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fra*​mework/Support/lsregister -kill -r -domain local -domain system -domain  user
übers Terminal aufgerufen und die App einmal neugestartet, hat es funktioniert!

Ich möchte über mein Java-Programm aus dem App-Bundle heraus, die Info.plist bearbeiten und somit dynamisch aus dem Java-Programm heraus URI-Schemes zum Programm anlegen lassen!

Gibt es da noch irgendwelche Bedenken bzgl. Schreibrechte? Die Info.plist habe ich "read & write" gesetzt und bei meinen Tests scheint es zu funktionieren - oder übersehe ich vlt. noch ein kommendes Problem?

Meine Vorgehensweise im Programm wird so sein:

1. Info.plist öffnen und URI-Scheme in XML eintragen, dann abspeichern
2. Launch Services wiederherstellen
3. Programm neustarten

Wenn Bedenken über den Verlauf bestehen, wäre ich für die Info dankbar!
 
ist die frage in wie weit die java sandbox das aus sicherheitsgründen zulässt, oder ob man da nicht auch noch was in den java einstellungen tun muss…
 
Zurück
Oben Unten