Configura un Mac per eseguire l'applicazione OSX (Nessuno Browser) in modalità kiosk pura

2

Ho provato per un certo numero di mesi, usando molti metodi, per eseguire un'applicazione Nuiteq chiamata Snowflake sul nostro 10 Mac Minis collegato ai touch-screen in modalità Kiosk pura. Sto usando Yosemite. Queste macchine devono essere in grado di:

  1. Esegui schermate senza finestre complete
  2. Disabilita il Dock e la barra dei menu
  3. Accesso al finder rimosso
  4. Non mostra il cursore predefinito e utilizza la funzionalità multitouch solo in Snowflake

Purtroppo, non ho accesso all'applicazione e non posso aggiungere cose come NSApplicationPresentationHideMenuBar a Snowflake in quanto è un software proprietario.

Inizialmente ho iniziato aggiungendo LUSIPresentationMode al file info.plist dell'app, con un certo successo. Il dock e la barra dei menu apparivano ancora. Poi ho creato un plist in ~/Library/LaunchAgents/ che ha sostituito finder con l'app. Sembrava questo:

 <?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>POSIXSpawnType</key>
    <string>App</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <dict>
        <key>SuccessfulExit</key>
        <true/>
        <key>AfterInitialDemand</key>
        <false/>
    </dict>
    <key>Label</key>
    <string>com.apple.FindertoSnowflake</string>
    <key>Program</key>
    <string>/Applications/snowflake/run.sh</string>
    <key>CFBundleIdentifier</key>
    <string>com.apple.finder</string>
    <key>ThrottleInterval</key>
    <integer>0</integer>
</dict>
</plist>

e ho scritto 2 brevi script che hanno caricato e scaricato il plist per fermare / avviare l'app. (Il seguente è per avviarlo)

PASSWORD=password

echo $PASSWORD | sudo -S killall Finder
launchctl unload -w /System/Library/LaunchAgents/com.apple.Finder.plist
launchctl load -w /Users/snowbloke/Library/LaunchAgents/com.apple.FindertoSnowflake.plist

E questo per smettere:

PASSWORD=password

echo $PASSWORD | sudo -S killall -vu snowflake

E quindi, il software non nasconde il cursore principale, quindi ho dovuto scrivere in una emulazione di tastiera di Fn + F3 per avviare lo script. Altrimenti ci sarebbero stati 2 set di interazione tra i driver touch usati da Snowflake e dal sistema operativo. Questo è stato molto fastidioso.

osascript -e "tell application \"System Events\" to key code 99"

exit 0

Ogni mac si collega direttamente nell'app dall'inizio.

Dopo aver eseguito tutto questo ed eseguito test nel tempo, gli utenti sono ancora in grado di accedere al desktop OS e il finder inizia a funzionare. Per qualche motivo, la barra dei menu o il dock vengono visualizzati sullo schermo. Esiste una soluzione più robusta? Cosa sto sbagliando?

    
posta Eggfoot 16.05.2016 - 12:12
fonte

0 risposte

Leggi altre domande sui tag