Sono in questa situazione in cui devo visualizzare un pulsante che dice "Apri myApp" (se myApp è installato sul dispositivo) o dice "Download myApp" (se myApp è non installato sul dispositivo) in un'app per iPhone. Per fare questo, ho bisogno di rilevare se un'app (con un URL personalizzato noto) è stata installata sul dispositivo. Come posso fare questo? Grazie in anticipo.Rilevare a livello di programmazione se un'app è installata su iPhone
risposta
AGGIORNATO 8 gennaio 2014 - 3 cose che puoi fare
Ho dovuto fare questo per un cliente nuovo. Volevano che gli utenti potessero aprire la loro seconda app dall'app principale se fosse stata installata.
Questo è il mio risultato. Utilizzare il metodo canOpenURL
per verificare se un'applicazione è installata o/e quindi utilizzare il metodo openURL
a
- Aprire l'applicazione installata sul dispositivo iOS
- portare l'utente ad App Store li punta direttamente al app/tua lista di sviluppatori applicazioni
- li porti a un sito web, invece
Tutti gli esempi di codice disponibili per ogni scenario
//Find out if the application has been installed on the iOS device
- (BOOL)isMyAppInstalled {
return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"nameOfMyApp:"]];
}
- (IBAction)openOrDownloadApp {
//This will return true if the app is installed on the iOS device
if ([self myAppIsInstalled]){
//Opens the application
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"nameOfMyApp:"]];
}
else { //App is not installed so do one of following:
//1. Take the user to the apple store so they can download the app
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/nameOfMyApp"]];
//OR
//2. Take the user to a list of applications from a developer
//or company exclude all punctuation and space characters.
//for example 'Pavan's Apps'
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/PavansApps"]];
//OR
//3. Take your users to a website instead, with maybe instructions/information
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.pavan.com/WhyTheHellDidTheAppNotOpen_what_now.html"]];
}
}
Scegliere un'opzione, ho appena l'imbarazzo della scelta. Scegli uno che si adatta alle tue esigenze. Nel mio caso ho dovuto usare tutte e tre le opzioni in diverse aree del programma.
Se lo schema URL per la tua app è "myapp:", quindi
BOOL myAppInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myapp:"]];
(Richiede iOS 3.0.)
Molto più semplice! Grazie! – bkbeachlabs
@bkbeachlabs molto più semplice rispetto a cosa? – Pavan
Devo essermi riferito a una modifica precedente su un'altra risposta. Molto tempo fa ora, quindi non ricordo! – bkbeachlabs
è possibile aggiungere un semplice meta tag nella testa di ogni pagina che ha bisogno questa app-sniffing.
Per maggiori informazioni, vai qui:
Forse, riassumere il contenuto del tuo URL nel tuo post aiuterebbe l'utente a pubblicare più semplicemente un link. Altra cosa, buon lavoro sul tuo primo post :-). –
Per controllare app è installare nel dispositivo o no
1) In info.plist aggiungere LSApplicationQueriesSchemes come di seguito esempio
2), in tipi di URL
3) Ora per verificare app è installare o no
- (IBAction)openAppPressed:(UIButton *)sender {
NSString *urlString = @"XYZAPP://";
NSURL *url = [NSURL URLWithString:urlString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itunes link for download app"]];
}
}
- 1. XCode 6 - iOS 8: controlla a livello di programmazione se è installata la vista
- 2. È possibile disattivare l'audio di iPhone a livello di programmazione?
- 3. WIX: come rilevare se l'applicazione di terzi è installata?
- 4. Come rilevare se l'esecuzione della finestra mobile è riuscita a livello di programmazione?
- 5. Come è possibile verificare a livello di programmazione se una funzionalità del server è installata in Windows Server 2008?
- 6. Posso dire a livello di programmazione se Spotlight è abilitato?
- 7. Come posso rilevare, tramite javascript in Safari Mobile, se è installata l'applicazione iPhone?
- 8. Come rilevare programmazione iphone 4
- 9. Come rilevare se Safari è disabilitato su iPhone
- 10. iphone - Impostazioni del proxy (a livello di sistema) programmate al livello di programmazione?
- 11. iPhone - Rimuovi la barra di stato a livello di programmazione
- 12. Recupero nome operatore da iPhone a livello di programmazione
- 13. Swift: come impostare il volume iphone a livello di programmazione
- 14. Determinare se il backup a livello di sistema è abilitato a livello di programmazione
- 15. iPhone: mixa due file audio a livello di programmazione?
- 16. iOS 3D a livello di programmazione
- 17. Come è possibile rilevare a livello di programmazione se javascript è abilitato/disabilitato in un'applicazione desktop di Windows? (Controllo WebBrowser)
- 18. iPhone SDK - Aggiungi un UINavigationController a livello di programmazione
- 19. Come posso rilevare se il telefono Android in modalità Silenzioso a livello di programmazione
- 20. Invia SMS da iPhone a livello di programmazione
- 21. Aggiungi UITextField su UIView a livello di programmazione
- 22. Come visualizzare un'immagine su UIView a livello di programmazione?
- 23. Determinare se un iPhone è Jail rotto programmazione
- 24. Kit orologio: è possibile vibrare l'orologio a livello di programmazione?
- 25. Rileva quale versione di un'app è installata su iOS?
- 26. È una cosa negativa creare viste a livello di programmazione?
- 27. Come sapere quale versione dell'applicazione installata a livello di programmazione in Android
- 28. Controlla a livello di programmazione se gem in bundle?
- 29. Ingrandire un MKMapView a livello di programmazione
- 30. jQuery: Come rilevare l'evento di modifica dall'input [type = 'checkbox'] se è stato selezionato a livello di programmazione?
La plist non è stato trovato in iOS 4. Sapete dove ora è stato spostato a? – samwize
Ciao, scusa per la risposta tardiva. Nessun problema. Il file si trova nella cartella '/ private/var/mobile/Library/Caches /'. Spero possa aiutare. Cheers – Pavan
Questo è il percorso in switch-case 2. Ma il file non è stato trovato (su iOS 4.3). – samwize