Unofficial Content
  • This documentation is valid for:

Purpose

Permite acceder a información del dispositivo en el que está ejecutándose la aplicación.

Scenarios 

Un posible escenario donde esta feature es de gran utilidad podria ser una aplicacion donde no nos interese que el usuario se autentique con usuario y password sino identificarlo de manera única por el dispositivo desde el que se conecta. También sirve para complementar los medios de autenticacion tradicionales: ver GAM.

Por ejemplo, una compania provee a sus equipo de ventas un smart device para registrar ventas, chequear informacion de clientes, etc. La aplicacion normalmente utilizaria el GAM para realizar la autenticacion de los usuarios y poder acceder a la informacion. Como metodo complementario, la compania puede chequear si el device desde el cual se pretende acceder a la informacion es un dispositivo autorizado; para esto se podria chequear el identificador unico del device y luego si dar acceso.

Otro escenario tipico donde esta API es de mucha utilidad es cuando tenemos una aplicacion que no exige a los usuarios que se registren, como por ejemplo, una aplicacion de lectura. Si quiero tener la posibilidad de hacer bookmark / reservar para leer mas tarde una noticia / marcarla como favorita, podemos utilizar la API para obtener el ID del dispositivo y asi guardar en la tabla las preferencias del usuario.

Ejemplo de uso

1 - El primer paso consiste en setear en las propiedades del generador la propiedad  "Send device information on requests"  = true

ciapi

2 - definir una variable del tipo "clientInformation" 

Un ejemplo de uso clasico es obtener la infomacion del dispositivo (por ejemplo: el Id del mismo o el S.O. utilizado) desde el cual el cliente accede a nuestra aplicacion.

Por ejemplo en el list de un work with smart devices se puede programar:

 Event Start

  Composite
   GetClientInfo.Call()
   EndComposite
 EndEvent

Luego en el procedimiento GetClientInfo podemos almacenar la infomacion del dispositivo (el "Id" del mismo en este caso):

 new
  UserId =  &ClientInformation.Id
  UserLastConnection = Now() // Another option to insert this value is to configure the default rule with this value 
 when duplicate
  for each
   UserLastConnection = Now()
  endfor
 endnew
 

Properties de ClientInformation API

ClientInformation.Id

Retorna un valor de tipo string (Varchar(128)) que identifica unívocamente la máquina cliente.

  • Para Smart Devices, retorna un identificador independiente de la red. 

Importante: el id varia cuando la aplicacion es desinstalada y vuelta a instalar, no asi cuando la misma es actualizada. 

Ejemplo: el usuario se instala una aplicacion desde el apple store, si luego nosotros liberamos una nueva version en el apple store y el usuario la actualiza sin desinstalar la version antigua el id se mantiene, en el caso que el usuario desinstale la aplicacion y luego instale una version nueva el id va a variar.

ClientInformation.OSName

Retorna un string (Varchar(40))  con el nombre del sistema operativo ejecutándose en la máquina cliente.

  • Para Smart Devices, los valores son "iPad", "iPhone", "iPod", "Android" y "Blackberry"

ClientInformation.OSVersion

Retorna un string (Varchar(40))  con la versión del sistema operativo que está ejecutándose en la máquina cliente. El formato del valor es dependiente del sistema operativo.

ClientInformation.NetworkId

El valor de este método es válido únicamente en el contexto de Smart Devices. 

 

Se utiliza para identificar un smart device accediendo a la red.
 
El valor depende de la tecnología de red.
Retoeno un identificador unico del dispositivo, puede ser el IMEI, MEID, ESN o nulo si el device ID no esta disponible.
 
El identificador de la red debe ser utilizado sólo en situaciones muy especiales, ya que se considera "información personal" en algunas plataformas. Esta valor no es fiable cuando se utiliza en dispositivos que no sean telefonos. 

Nota: En iOS esta propiedad no está soportada, ya que no es posible acceder por código a esta información (Apple no aprueba las aplicaciones que lo hacen)

ClientInformation.Language

Retorna una cadena de caracteres con el lenguaje del dispositivo.
Usos posibles: Fines estadísticos, por ejemplo para medir cuántos dispositivos están accediendo a la aplicación que no tienen la configuración de idioma que la aplicación no provee y así establecer prioridades en la internacionalización de la aplicación.

La sintaxis de la cadena devuelta es <Lenguaje>-<Región>,<Lenguaje> ; sigiendo estándares W3C: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Ejemplo: en-US,en

Notar que la aplicación automáticamente va a mostrarse en el lenguaje más adecuado para el usuario en base al lenguaje del dispositivo y los lenguajes disponibles en la base de conocimiento. Para programáticamente averiguar en qué idioma se ve la aplicación, se debe usar la GetLanguage function.

 


Last update: February 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant