2012-02-15 10 views
23

Ho risposto allo two diverso questions ora, entrambi che spiegano come le app VOIP non iniziano lo all'avvio, eppure la gente sembra pensare di sì.Le app per iPhone possono iniziare all'avvio?

Non sono sicuro al 100%, qualcuno mi ha collegato a uno part of the apple docs, che in realtà non menziona nulla sull'avvio automatico delle app.

Inizialmente ero in possesso di conoscenze precedenti e this answer, ma dopo che un'altra persona ha detto che lo fanno, non sono sicuro.

Per quanto ne so, le app reagiscono solo alle notifiche push e non possono essere avviate sullo sfondo quando un dispositivo è acceso.

Possiamo chiarire se è possibile avviare automaticamente un'app o no?

+5

noioso? Non c'è modo. Sta diventando davvero teso. – Costique

+0

@Costique aggiornato di conseguenza :) –

+0

Non credo che lo facciano, guarda Skype ad esempio. Esistono persino app "jailbreak" che avviano questo tipo di app per te. – fbernardo

risposta

27

Date un'occhiata alla sezione di UIBackgroundModes in this document - sembra affermare che l'aggiunta del autostart voip chiave volontà un app sul caricamento del sistema.

Modifica: a sample app sembra confermare questo comportamento.

+0

Questo è interessante, qualcuno può confermare questo per favore? Esistono app di esempio reali che utilizzano questa funzione? – sch

+0

Ne ho appena scritto uno (e ne ho parlato in modo blogger, se non vuoi scavare nel codice): https://github.com/lithium3141/BootLaunch e http://lithium3141.com/2012/02/18/ios- launch-on-boot-apps-fact-or-fiction /, rispettivamente. – Tim

+0

+1: per un'ottima osservazione. –

2

Non è possibile avviare un'applicazione senza l'interazione dell'utente. L'utente deve fare clic sull'icona dell'app, sulle notifiche push, su un collegamento personalizzato. Possono esserci altri modi di cui non sono a conoscenza, ma anche se esistono, richiedono l'interazione dell'utente per avviare intenzionalmente l'app.

Modifica

Si scopre, come detto Tim, ci potrebbe essere un'eccezione per le applicazioni VOIP.

+0

Questo non è corretto. Forse era una volta, ma ci sono diversi modi che funzionano dall'inizio del 2016, dettagliati in altre risposte. – DefenestrationDay

+0

Il commento precedente non aiuta affatto a comunicare una risposta. Ora non so neanche dove guardare o cosa cercare. –

0

Un cambio di posizione significativo o il monitoraggio della regione fa sì che un'app si avvii all'avvio finché è accesa e lasciata accesa. Per questo non è necessaria la chiave UIBackgroundModes.

+1

Ciao, puoi fornire la documentazione per questo? – joscas

+0

Fintanto che l'utente finale non ha disabilitato l'aggiornamento dell'applicazione in background in generale o per l'app specifica, altrimenti è bloccato per questo tipo di riattivazione tramite CL o VOIP, ad es. – LenArt

+1

In base a [Guida alla programmazione di posizioni e mappe] (https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html): 'Se l'app viene chiusa da un utente o dal sistema, il sistema non riavvia automaticamente l'app quando arrivano nuovi aggiornamenti di posizione. Un utente deve riavviare esplicitamente la tua app prima che la consegna degli aggiornamenti di posizione riprenda. L'unico modo per rilanciare automaticamente l'app è utilizzare il monitoraggio della regione o il servizio di cambio di posizione significativo. – DefenestrationDay

5

Confermo che l'impostazione della modalità VOIP funziona. Tuttavia, ho riscontrato che l'app non si riavvierà dopo l'accensione a meno che non fosse in esecuzione quando il dispositivo è stato spento. Inoltre, l'app non verrà effettivamente riavviata sul dispositivo recentemente acceso fino a quando il dispositivo non viene sbloccato dopo l'accensione.

3

OK, non so se questo classifica come una risposta, ma mi sento obbligato a dire. Sto sviluppando un'applicazione che tiene traccia sia delle modifiche significative alla posizione che delle funzionalità VoIP. L'app ha la chiave voip in Modalità di sfondo richieste. Ho provato alcuni casi che vorrei condividere i risultati:

  • applicazione è in modalità debug - spento mentre applicazione era in esecuzione (attiva o di fondo) - iOS 7.1.1 (11D201) e iPhone 4 (nome del prodotto : iPhone3,2):

All'avvio, l'app è in esecuzione in background, così come altre app in esecuzione in precedenza. Non penso che questo sia collegato a VoIP in alcun modo.

  • L'app è in modalità di debug - Spenta quando l'app è stata interrotta - iOS 7.1.1 (11D201) e iPhone 4 (nome del prodotto: iPhone3,2):

Quando avviato, l'applicazione non è in esecuzione, non ci sono i registri a utility di configurazione, il server dice l'utente non è registrato non posso chiamarlo da altri dispositivi; eppure le altre app che non sono correlate a VoIP o localizzazione ma che erano aperte prima di essere disattivate sono almeno caricate in memoria. Significato, la chiave voip non ha funzionato.

Ho continuato il test con la stessa app ma questa volta l'ho scaricato da App Store. I risultati sono gli stessi. Modificato il dispositivo e il sistema operativo su iPhone 3G (nome prodotto: iPhone2,1) e iOS 6.1.6 (10B500). Nulla è cambiato sia nelle modalità di debug che di rilascio.

Ho detto al mio capo che Apple fornisce questo comportamento e può essere fatto. Poi ho ripensato e provato, ora sto cercando disperatamente di trovare un altro modo. Sto per inviare i miei saluti ad Apple su questo.

+0

Penso che il problema principale di cui ci occupiamo sia: se prima di un riavvio l'app non era in esecuzione (BG/FG) quindi non si avvierà automaticamente dopo il riavvio (quando la nostra app è VOIP ad esempio). – OhadM

0

Ho sviluppato app VoIP e posso confermare che l'applicazione VoIP si avvierà automaticamente quando iPhone si riavvia finché l'utente non lo uccide prima di riavviare. Quando l'app di avvio automatico di iOS solo application:didFinishLaunchingWithOptions: verrà eseguita, ad esempio, applicationDidBecomeActive: non verrà eseguita.

Avevo dubbi sul fatto che iOS riavvierà automaticamente l'app Voip quando si blocca. Dopo aver esaminato, ho trovato che iOS riavvia automaticamente l'app Voip, ma se continua a bloccarsi, iOS tenterà i tempi di servizio prima che alla fine si arrenda.

Se si controlla iPhone output di console da Xcode, è possibile vedere i registri come questi, dopo il primo incidente

.. 
Service exited due to signal: Abort trap: xxx 
Unable to get short BSD proc info for xxxx: No such process 
Application 'UIKitApplication:xxxxx]' crashed. 
... 
Problemi correlati