2013-02-25 10 views
8

Sto facendo un'applicazione che richiede l'attenzione completa dell'utente fino a raggiungere un obiettivo specificato. prima di raggiungere l'obiettivo, se un utente prova a premere il pulsante "home" dovrebbe essere disabilitato, o come "modalità kiosk" in ios6. Avevo solo bisogno di essere programmato all'avvio dell'applicazione, non mi piace fare nulla cambiando manualmente nel menu delle impostazioni in iPhone/iPad Dopo aver completato il target nella mia applicazione, il pulsante home dovrebbe essere abilitato. L'applicazione è mirata per l'impresa. Quindi nessuna necessità di approvazione dell'app store. Come fare questo? Grazie in anticipo.Come abilitare una "modalità kiosk" a livello di codice in ipad?

Modifica: ho letto su "mobile plist di configurazione". Quello aveva bisogno di riavviare il dispositivo. Ma non mi piace riavviare il dispositivo. Una volta avviata la mia applicazione, dovrebbe occuparsi di tutto (programmaticamente). Non voglio l'intervento degli utenti/supervisori in questo. Voglio solo disabilitare il pulsante home come in 'Accesso guidato' ma con programmaticamente all'interno della mia app. È disponibile una API privata da 'Accesso guidato' per disabilitare il pulsante home?

Nota: non per un dispositivo jail rotto. Destinato per l'app con licenza aziendale.

+1

Non credo che è consentito ... – Sagrian

+0

"plist configurazione mobile" necessario per riavviare il dispositivo. Ma non mi piace riavviare il dispositivo. Una volta avviata la mia applicazione, dovrebbe occuparsi di tutto (programmaticamente). Non voglio l'intervento degli utenti/supervisori in questo. Voglio solo disabilitare il pulsante home come in Accesso guidato ma a livello di programmazione. –

risposta

2

Senza l'utilizzo di framework privati ​​o il jailbreak del dispositivo non è possibile disabilitare automaticamente il pulsante home. La cosa più vicina che puoi fare è chiedere al tuo utente finale di utilizzare l'accesso guidato per richiedere un triplo clic del pulsante home per uscire dall'applicazione. L'accesso guidato deve prima essere attivato nell'applicazione Impostazioni in Generale-> Accessibilità.

Vedere anche: Disable Home Button Without Rebooting Device - Stack Overflow

+0

Grazie. ma ancora non esiste una soluzione esatta per il collegamento sopra menzionato. –

+0

Esattamente. Questo argomento è stato sollevato in precedenza e al momento non esiste una soluzione. – Jeremy1026

11

Zachary Christopoulos ha un post su questo utilizzando un "plist configurazione del mobile".

Una volta che questo profilo è installata la prima applicazione che viene lanciato quando il dispositivo viene riavviato sarà l'unica applicazione che verrà eseguito fino a quando si riavvia il dispositivo di nuovo.

Esempio plist da Zachary's post:

<?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>PayloadContent</key> 
    <array> 
     <dict> 
      <key>PayloadDescription</key> 
      <string>Disables the home button.</string> 
      <key>PayloadDisplayName</key> 
      <string>Home Button Lock</string> 
      <key>PayloadIdentifier</key> 
      <string>com.zchristopoulos.kiosk</string> 
      <key>PayloadOrganization</key> 
      <string>Zachary Christopoulos</string> 
      <key>PayloadType</key> 
      <string>com.apple.defaults.managed</string> 
      <key>PayloadUUID</key> 
      <string>B2D02E2D-BAC5-431B-8A29-4B91F71C9FC1</string> 
      <key>PayloadVersion</key> 
      <integer>1</integer> 
      <key>PayloadContent</key> 
      <array> 
       <dict> 
        <key>DefaultsDomainName</key> 
        <string>com.apple.springboard</string> 
        <key>DefaultsData</key> 
        <dict> 
        <key>SBStoreDemoAppLock</key> 
        <true/> 
        </dict> 
       </dict> 
      </array> 
     </dict> 
    </array> 
    <key>PayloadDescription</key> 
    <string>Disables Home Button</string> 
    <key>PayloadDisplayName</key> 
    <string>Home Button Lock</string> 
    <key>PayloadIdentifier</key> 
    <string>com.zchristopoulos.hbkill</string> 
    <key>PayloadOrganization</key> 
    <string>Zachary Christopoulos</string> 
    <key>PayloadType</key> 
    <string>Configuration</string> 
    <key>PayloadUUID</key> 
    <string>614D1FE3-F80D-4643-AF6B-D10C4CC8737A</string> 
    <key>PayloadVersion</key> 
    <integer>1</integer> 
</dict> 
</plist> 
+0

Grazie. Ma non mi piace riavviare il dispositivo. Una volta avviata la mia applicazione, dovrebbe occuparsi di tutto (programmaticamente). Non voglio l'intervento degli utenti/supervisori in questo. –

+0

Questo non è più supportato su iOS 7. Non è il modo ufficiale. https://devforums.apple.com/thread/216385?tstart=0 – Prcela

+1

dobbiamo utilizzare App Lock Payload (PayLoadType = com.apple.app.lock) Come per iOS 6 Configuration profile reference (https: // developer .apple.com/library/ios/featuredarticles/iPhoneConfigurationProfileRef/Introduzione/Introduction.html # // apple_ref/doc/uid/TP40010206-CH1-SW4). @Rjstelling considera la possibilità di fornire un file plist di esempio per iOS 7 in modo che diventi uno sportello unico per questa impostazione della modalità kiosk. –

Problemi correlati