¿Cómo puedo determinar si el usuario de un dispositivo iOS tiene una aplicación específica instalada? Si sé el nombre de la aplicación ¿puedo usar canOpenURL
de alguna manera?¿Cómo puedo determinar si un usuario tiene una aplicación de iOS instalada?
10
A
Respuesta
11
Si la aplicación admite un esquema de URL personalizado, puede marcar UIApplication
-canOpenURL:
. Eso solo le dirá que una aplicación capaz de abrir ese esquema de url está disponible, no necesariamente la aplicación que es. No hay un mecanismo disponible públicamente para inspeccionar qué otras aplicaciones ha instalado un usuario en su dispositivo.
Si controla ambas aplicaciones, también puede utilizar un llavero o un cartón para compartir entre ellas con más detalle.
8
Puede comprobar de esta manera, así:
BOOL temp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yourAppURL://"]];
if(!temp)
{
NSLog(@"INVALID URL"); //Or alert or anything you want to do here
}
0
para los usuarios de SWIFT
let urlPath: String = "fb://www.facebook.com"
let url: NSURL = NSURL(string: urlPath)!
let isInstalled = UIApplication.sharedApplication().canOpenURL(url)
if isInstalled {
print("Installed")
}else{
print("Not installed")
}
0
Facebook utiliza esta https://github.com/facebook/facebook-ios-sdk/blob/master/FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKInternalUtility.m internamente, puede hacer lo mismo
#define FBSDK_CANOPENURL_FACEBOOK @"fbauth2"
+ (BOOL)isFacebookAppInstalled
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[FBSDKInternalUtility checkRegisteredCanOpenURLScheme:FBSDK_CANOPENURL_FACEBOOK];
});
NSURLComponents *components = [[NSURLComponents alloc] init];
components.scheme = FBSDK_CANOPENURL_FACEBOOK;
components.path = @"/";
return [[UIApplication sharedApplication]
canOpenURL:components.URL];
}
Código de Swift 3
static func isFacebookAppInstalled() -> Bool {
let schemes = ["fbauth2", "fbapi", "fb"]
let schemeUrls = schemes.flatMap({ URL(string: "\($0)://") })
return !schemeUrls.filter({ UIApplication.shared.canOpenURL($0) }).isEmpty
}
Cuestiones relacionadas
- 1. iOS facebook compruebe si sus amigos tienen una aplicación instalada
- 2. ¿Detecta qué versión de una aplicación está instalada en iOS?
- 3. cómo detectar si el usuario tiene una aplicación en Cocoa
- 4. Detectar desde el navegador si está instalada una aplicación específica
- 5. ¿Cómo determinar si un campo tiene foco?
- 6. WIX: ¿Cómo detectar si está instalada una aplicación de terceros?
- 7. Determinar si QTableView tiene un editor abierto
- 8. ¿Cómo puedo probar si el dispositivo IOS tiene capacidades telefónicas?
- 9. FQL facebook query language: ¿cómo puedo consultar la lista de amigos de un usuario específico que tiene mi aplicación instalada?
- 10. ¿Cómo determinar si un dispositivo Android tiene una pantalla táctil?
- 11. ¿Cómo determinar si un flotador tiene una parte fraccionaria?
- 12. ¿Cómo puedo determinar si una aplicación .NET tiene 32 o 64 bits?
- 13. iOS: ¿cómo verificar si una cadena tiene solo dígitos?
- 14. Autenticación falla con la aplicación de Facebook instalada (iOS)
- 15. Cómo determinar si una anotación está dentro de MKPolygonView (iOS)
- 16. ¿Cómo puedo determinar si mi aplicación de Android tiene pérdida de memoria?
- 17. ¿Cómo verificar programáticamente si hay una aplicación instalada?
- 18. ¿Cómo puedo determinar si un objeto o referencia tiene una coerción de cadena válida?
- 19. ¿Cómo determinar si una matriz asociativa tiene una clave?
- 20. Detectando programáticamente si hay una aplicación instalada en el iPhone
- 21. ¿Cómo puedo determinar si una URL redirige?
- 22. ¿Cómo puedo eliminar mi aplicación de empresa iOS en el iPhone de un determinado usuario?
- 23. ¿Cómo verificar si un usuario tiene una suscripción (facturación en la aplicación de Android)?
- 24. ¿Puede determinar mediante programación si un usuario tiene licencia para un paquete?
- 25. Cómo saber cuándo un usuario evalúa una aplicación/juego iOS
- 26. Gravatar: cómo sé si un usuario tiene una imagen real
- 27. ¿Cómo puedo determinar si se muestra un botón de retroceso?
- 28. ¿Cómo puedo determinar si un objeto ConstructorInfo tiene un parámetro no administrado?
- 29. ¿Cómo puedo verificar si mi aplicación tiene foco?
- 30. ¿Cómo puedo saber si un proceso tiene una interfaz gráfica?
La primera línea no se compila para mí, pero esto hizo: 'temp BOOL = [[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString: @ "yourAppURL: //"]];' – newenglander
lo siento, pero lo es la URL de la aplicación? ¿es el nombre de la aplicación o algo así? – ColdSteel