Una de las quejas acerca de iOS que más se han escuchado en los últimos años es la posibilidad que tienen ahora mismo las Apps para saber si tenemos otras Apps instaladas. Es un problema, porque si tenemos cierto tipo de Apps (por ejemplo, de citas o buscar pareja) entonces otras Apps pueden mostrarnos publicidad relacionada con esos temas o, simplemente, una compañía A podría saber si también estamos utilizando una App de su competencia B. Esa información anónima, aunque es importante para muchas empresas, no deja de ser privada. iOS 9, acabará con este problema prohibiendo a las Apps saber qué otras Apps hay instaladas en ese dispositivo.
El método para saber si una App está instalada en un dispositivo, es utilizando una API llamada canopenURL. Si una App detecta que cierto tipo de URL para una App determinada se puede abrir, significa que el sistema la tiene instalada.
Si una URL para una App determinada no se abre, significa que el usuario aún no la ha descargado. Es el sistema que utiliza iOS para abrir contenidos a una App instalada… por ejemplo con un enlace a una imagen de Instagram se utilizaría la instrucción canOpenURL:instagramURL. Si funciona, Instagram está en el sistema. Si devuelve un error o no hay respuesta, significa que el usuario no ha instalado Instagram. Con esto, queremos dejar claro que Apple nunca ha dado permiso a nadie para saber qué Apps hay instaladas en iOS… es simplemente una utilización incorrecta de una API que no está bien diseñada desde su inicio.
A partir de la instalación de iOS 9, esa API cambia para que una App no pueda saber si una URL determinada ha conseguido abrir la App o no. Es una buena noticia para los usuarios, que como siempre debería haberse arreglado antes pero que por lo menos ha llegado, por fin.
Vía: Business Insider.
canopenURL es un método que forma parte del Foundation Framework pero no es una API