Métodos SDK Móvil
Se presentarán todos los métdos públicos disponibles en el SDK para uso del desarrollador para obtener la información deseada.
Login#
Los métodos del Login son utilizados para autenticarse en la aplicación y obtener la configuración y datos necesarios para ejecutar los procesos de la aplicación.
Login de Código#
Para poder logearse con un código empresarial es necesario utilizar el siguiente código, este código únicamente sirve como ejemplo de como realizar el login. Esta función es necesaria y es la primera que se debe de mandar llamar para poder conocer la configuración inicial.
Android#
DGSDKLogin.invoke(String code, boolean isOffline, Context context)Para obtener la respuesta de cualquiera de los métodos se debe implementar la variable handler de la clase DGSDKLogin.
public interface loginCallback { void onResponse(DGSDKLoginResponse response);}El objeto de la respuesta:
public class DGSDKLoginResponse { public int code; public String message; public DGSDKLogin.OperationType type;}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkDelegate?.DGSDKLoginCode(code: "Código", delegate: self)Ejemplo:#
Android#
DGSDKLogin.handler = (loginResponse) -> { if (loginResponse.type == DGSDKLogin.OperationType.CODE && loginResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo codigo. } if (loginResponse.type == DGSDKLogin.OperationType.LOGIN && loginResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo usuario. } };IOS#
import Foundationimport UIKitimport DIGIPROSDKimport DIGIPROSDKUI
class ViewController: UIViewController{ var sdkDelegate: APIManager<ViewController>? override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func viewDidLoad() { super.viewDidLoad() sdkDelegate = APIManager<ViewController>() sdkDelegate?.delegate = self } @IBAction func CodeLogin(_ sender: Any) { self.sdkDelegate?.DGSDKLoginCode(code: "Código", delegate: self) .then({ response in debugPrint(response) }).catch({ error in let e = error as NSError debugPrint(e.localizedDescription) }) } }Login de Usuario#
Este es el código utilizado para poder logear al usuario, es necesaria esta función para validar el acceso y obtener el perfil del usuario. Es forzoso primero hacer login del código ya que esta función no funcionará sin primero conocer el código del proyecto.
Android#
DGSDKLogin.invoke(String user, String password, boolean isOffline, Context context)Para obtener la respuesta de cualquiera de los métodos se debe implementar la variable handler de la clase DGSDKLogin.
public interface loginCallback { void onResponse(DGSDKLoginResponse response);}El objeto de la respuesta:
public class DGSDKLoginResponse { public int code; public String message; public DGSDKLogin.OperationType type;}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkDelegate?.DGSDKLoginUser(user: "Usuario", pass: "Contraseña", delegate: self)Ejemplo:#
Android#
DGSDKLogin.handler = (loginResponse) -> { if (loginResponse.type == DGSDKLogin.OperationType.CODE && loginResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo codigo. } if (loginResponse.type == DGSDKLogin.OperationType.LOGIN && loginResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo usuario. } };IOS#
import Foundationimport UIKitimport DIGIPROSDKimport DIGIPROSDKUI
class ViewController: UIViewController{ var sdkDelegate: APIManager<ViewController>? override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func viewDidLoad() { super.viewDidLoad() sdkDelegate = APIManager<ViewController>() sdkDelegate?.delegate = self } @IBAction func UserLogin(_ sender: Any) { debugPrint("This function is needed to perform user login to perform all user profile and permissions") self.sdkDelegate?.DGSDKLoginUser(user: "Usuario", pass: "Contraseña", delegate: self) .then({ response in debugPrint(response) }).catch({ error in let e = error as NSError debugPrint(e.localizedDescription) }) } }One Login#
Este es el código utilizado para poder logear un código y un usuario a la vez, es necesaria esta función para validar el acceso y obtener el código y el perfil del usuario.
Android#
DGSDKLogin.invoke(String code, String user, String password, boolean isOffline, Context context)Para obtener la respuesta de cualquiera de los métodos se debe implementar la variable handler de la clase DGSDKLogin.
public interface loginCallback { void onResponse(DGSDKLoginResponse response);}El objeto de la respuesta:
public class DGSDKLoginResponse { public int code; public String message; public DGSDKLogin.OperationType type;}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkDelegate?.DGSDKLogin(code: "Codigo", user: "Usuario", pass: "Contraseña", delegate: self)Ejemplo:#
Android#
DGSDKLogin.handler = (loginResponse) -> { if (loginResponse.type == DGSDKLogin.OperationType.CODE && loginResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo codigo. } if (loginResponse.type == DGSDKLogin.OperationType.LOGIN && loginResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo usuario. } };IOS#
import Foundationimport UIKitimport DIGIPROSDKimport DIGIPROSDKUI
class ViewController: UIViewController{ var sdkDelegate: APIManager<ViewController>? override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func viewDidLoad() { super.viewDidLoad() sdkDelegate = APIManager<ViewController>() sdkDelegate?.delegate = self } @IBAction func UserLogin(_ sender: Any) { debugPrint("This function is needed to perform user login to perform all user profile and permissions") self.sdkDelegate?.DGSDKLogin(code: "Codigo", user: "Usuario", pass: "Contraseña", delegate: self) .then({ response in debugPrint(response) }).catch({ error in let e = error as NSError debugPrint(e.localizedDescription) }) } }Plantillas#
Las plantillas son necesarias para poder descargar la configuración realizada en el portal "ID Portal" y poder mostrar todos los componentes, elementos, servicios, etc.
Android#
El método para descargar plantillas se encuentra dentro de la clase DGSDKDownloadTemplate
DGSDKDownloadTemplate.invoke(boolean eraseData, Context context)Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKDownloadTemplate
public interface DownloadTemplateCallback { void onResponse(DGSDKDownloadTemplateResponse downloadTempResponse);}El objeto de la respuesta:
public class DGSDKDownloadTemplateResponse { public int code; public String message; public List plantillas;}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.DGSDKdownloadTemplates(delegate: delegate)Ejemplo#
Android#
DGSDKDownloadTemplate.handler = (downloadTempResponse) -> { //Aquí se hace el manejo de la respuesta.};IOS#
self.DGSDKdownloadTemplates(delegate: delegate) .then{ response in }.catch{ error in
}Variables#
Las variables son necesarias para poder hacer que las plantillas puedan compartir información por default, tales como: datos relaciones con el perfíl de usuario.
Android#
El método para descargar variables se encuentra dentro de la clase DGSDKDownloadVariable
DGSDKdownloadVariables.invoke(Context context)Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKDownloadVariable
public interface DownloadVariableCallback { void onResponse(DGSDKDownloadVariableResponse downloadVarResponse);}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.DGSDKdownloadVariables(delegate: delegate)Ejemplo:#
Android#
DGSDKDownloadVariable.handler = (downloadVarResponse) -> { //Aquí se hace el manejo de la respuesta.};IOS#
self.DGSDKdownloadVariables(delegate: delegate) .then { response in }.catch { error in
}Formatos#
Las formatos son los que contienen la información que se capturó en el onboarding, esta información va desde datos simples hasta objetos como los biométricos.
Android#
El método para descargar formatos se encuentra dentro de la clase DGSDKDownloadFormat
DGSDKdownloadFormat.invoke(boolean eraseDatos, Context context)El objeto de la respuesta:
public class DGSDKDownloadFormatResponse { public int code; public String message; public FEConsultaFormato formato;}Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKDownloadFormat
public interface DownloadFormatCallback { void onResponse(DGSDKDownloadFormatResponse formatResponse);}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.DGSDKdownloadFormats(delegate: delegate)Ejemplo:#
Android#
DGSDKDownloadFormat.handler = (formatResponse) -> { //Aquí se hace el manejo de la respuesta.};IOS#
self.DGSDKdownloadFormats(delegate: delegate) .then { response in
}.catch { error in
}Skin#
Android#
El método para descargar el skin se encuentra dentro de la clase DGSDKDownloadSkin
DGSDKDownloadSkin.invoke(boolean isOffline, Context context)Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKDownloadSkin
public interface DownloadSkinCallback { void onResponse(Integer code, String skinMessage);}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.DGSDKSkin(delegate: delegate)Ejemplo:#
Android#
DGSDKDownloadSkin.handler = (code, resultDownloadSkin) -> { //Aquí se hace el manejo de la respuesta.};IOS#
self.sdkAPI?.DGSDKSkin(delegate: self).then({ response in }).catch({ error in })Anexos#
Los anexos son las imagenes. videos, audios, firmas o biométricos que fueron capturados durante la captura de un formato.
Android#
El método para descargar anexos se encuentra dentro de la clase DGSDKDownloadAttachments
DGSDKDownloadAttachments.invoke(FEFormatoData formatoData, TipoAnexo tipoAnexo, Context context)Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKDownloadAttachments
public interface DownloadAttachmentsCallback { void onResponse(Integer downloadAttCode, String downloadAttMessage);}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.DGSDKverAnexo(anexo: FEAnexoData, formato: FEFormatoData)Ejemplo:#
Android#
DGSDKDownloadAttachments.handler = (downloadAttCode, downloadAttMessage) -> { //Aquí se hace el manejo de la respuesta.};IOS#
self.sdkAPI?.DGSDKverAnexo(anexo: item, formato: formato).then({ response in }).catch({ error in })Enviar Formatos#
Método para enviar los formatos creados y manipularlos en el servidor para una mayor interpretación de la información.
Android#
El método para enviar formatos se encuentra dentro de la clase DGSDKSendFormat
DGSDKsendFormat.invoke(Context context)Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKSendFormat
public interface SendFormatCallback { void onResponse(Integer code, String resultMessage);}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.DGSDKsendFormatos(delegate: self)Ejemplo:#
Android#
DGSDKSendFormat.handler=(code, resultMessage) -> { //Aquí se hace el manejo de la respuesta.};IOS#
self.sdkDelegate?.DGSDKsendFormatos(delegate: self).then({ response in
}).catch({ error in
})Cargar Plantilla#
Cuando requieres crear un nuevo formato deberás de cargar la plantilla para obtener la información de los componentes, servicios y elementos configurados.
Android#
El método para cargar una plantilla que se encuentra dentro de la clase DGSDKLoadTemplate.
DGSDKLoadTemplate.invoke(FEPlantillaData itemFePlantillaData, Activity activity)Como argumentos recibe el contexto, la plantilla a cargar y la actividad desde donde se está llamando a cargar la plantilla.
Cuando el formato se ha llenado y ha sido guardado se puede recuperar el control de la aplicación sobreescribiendo el método onActivityResult en la actividad donde se llamó el método DGSDKloadTemplate.
IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkAPI?.DGSDKgetFlows(delegate: self)}Ejemplo:#
Android#
@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if(requestCode == Formato.FORMAT_RESULT && resultCode == RESULT_OK){ Log.i("onActivityResult ","OK"); } super.onActivityResult(requestCode, resultCode, data);}Donde Formato.FORMAT_RESULT es el requestCode que sirve para identificar que la actividad que regresó el resultado es la perteneciente al formato. Para saber que se ejecutó correctamente se debe verificar que el resultCode sea igual a Activity.RESULT_OK.
IOS#
self.sdkAPI?.DGSDKgetFlows(delegate: self).then { response in }.catch {
}Obtener Formato#
Si requieres cargar un formato descargado desde el servidor o salvado en la aplicación y quieres editarlo o modificarlo.
Android#
El método para obtener un formato por medio del GUID se encuentra dentro de la clase DGSDKGetFormatoData.
DGSDKGetFormatoData.getFormatoData(String Guid, Context context)IOS#
self.sdkAPI?.DGSDKformatEdit(delegate: self, formato: item, true, false).then({ response in
}).catch({ error in
})Transitar Formato#
Es necesario transitar un formato para realizar cambios en un formato y establecer el formato en el estado correcto del flujo.
Android#
El método para transitar formatos se encuentra dentro de la clase DGSDKTransitFormat
DGSDKTransitFormat.invoke(Context context)Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKSendFormat
public interface TransitFormatCallback { void onResponse(Integer transitCode, String resultTransitFormat);}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkAPI?.DGSDKsetFlowTask(delegate: self, formato: item, nombreTarea: tarea, needsReserved: reserva)}Ejemplo:#
Android#
DGSDKTransitFormat.handler = (code, resultTransitFormat) -> { //Aquí se hace el manejo de la respuesta.};IOS#
self.sdkAPI?.DGSDKsetFlowTask(delegate: self, formato: item, nombreTarea: tarea, needsReserved: reserva).then({ response in }).catch({ error in })Registro#
Registro de Usuario#
Método para crear una nueva cuenta de usuario
Android#
El método para registrar usuarios se encuentra dentro de la clase DGSDKRegister
DGSDKRegister.registerUser(FERegistro userRegistro, CodigoSaved codigoSaved, Context context)Ejemplo:
FERegistro userRegistrar = new FERegistro();userRegistrar.User = "gibreelmart";userRegistrar.Password = "tester";userRegistrar.Email = "[email protected]";userRegistrar.Nombre = "Gibreel";userRegistrar.ApellidoP = "M";userRegistrar.ApellidoM = "R";userRegistrar.Celular = "5525277397";DGSDKRegister.registerUser(userRegistrar, FeSdkCore.codigoSaved, mContext);Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKRegister
public interface registroCallback { void registerResponse(DGSDKRegisterResponse registerResponse);}El objeto de la respuesta:
public class DGSDKRegisterResponse { public int code; public String message = ""; public DGSDKRegister.OperationType type;}IOS#
self.sdkAPI.soapNewRegistroPromise(delegate: self, mParams: mparams, sParams: sparams)let mparams = ["[email protected]", "tester", "Gibreel", "M", "Gibreel", "[email protected]", "String(ConfigurationManager.shared.codigoUIAppDelegate.GrupoRegistro"), "ConfigurationManager.shared.codigoUIAppDelegate.Perfiles"]let sparams = ["String(ConfigurationManager.shared.codigoUIAppDelegate.ProyectoID)"]Ejemplo:#
Android#
DGSDKRegister.handler = (registerResponse) -> { //Aquí se hace el manejo de la respuesta. if (registerResponse.type == DGSDKRegister.OperationType.REGISTRAR && registerResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo registro. }};IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkAPI.soapNewRegistroPromise(delegate: self, mParams: mparams, sParams: sparams).then{ response in }.catch{
}Activación de Usuario#
Al registrar el usuario y activar la cuenta para poder ser usada es necesario su activación por SMS
Android#
El método para activar usuarios se encuentra dentro de la clase DGSDKRegister
DGSDKRegister.activateUser(FERegistro userRegistro, String codigoSms, Context context)Ejemplo:
String codigoSMS = "123456";DGSDKRegister.activateUser(userRegistrar, codigoSMS, mContext);Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKRegister
public interface registroCallback { void registerResponse(DGSDKRegisterResponse registerResponse);}El objeto de la respuesta:
public class DGSDKRegisterResponse { public int code; public String message = ""; public DGSDKRegister.OperationType type;}IOS#
self.sdkAPI.soapNewSMSPromise(delegate: self, mParams: mparams, sParams: sparams)let mparams = ["[email protected]", "tester", "Gibreel", "M", "Gibreel", "[email protected]", "String(ConfigurationManager.shared.codigoUIAppDelegate.GrupoRegistro"), "ConfigurationManager.shared.codigoUIAppDelegate.Perfiles"]let sparams = ["String(ConfigurationManager.shared.codigoUIAppDelegate.ProyectoID)"]Ejemplo:#
Android#
DGSDKRegister.handler = (registerResponse) -> { //Aquí se hace el manejo de la respuesta. if (registerResponse.type == DGSDKRegister.OperationType.ACTIVAR && registerResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo registro. }};IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkAPI.soapNewSMSPromise(delegate: self, mParams: mparams, sParams: sparams).then{ response in }.catch{
}Cambio de Contraseña#
Método utilizado para cambiar la contraseña en el caso de que al activar la cuenta tenga por default el parámetro de cambiar contraseña la primera vez al ser utilizada la cuenta.
Android#
El método para cambiar la contraseña del usuario se encuentra dentro de la clase DGSDKRegister
DGSDKRegister.changePasswordUser(FEUsuario usuario, Context context)Ejemplo:
FEUsuario usuario = new FEUsuario();usuario.User = "gibreelmart";usuario.Password = "tester";usuario.PasswordNuevo = "testerNew";DGSDKRegister.changePasswordUser(usuario, mContext);Para obtener la respuesta del método se debe implementar la variable handler de la clase DGSDKRegister
public interface registroCallback { void registerResponse(DGSDKRegisterResponse registerResponse);}El objeto de la respuesta:
public class DGSDKRegisterResponse { public int code; public String message = ""; public DGSDKRegister.OperationType type;}IOS#
Declaración del protocolo y asignar el delegado
var sdkDelegate: APIManager<ViewController>?sdkDelegate = APIManager<ViewController>()sdkDelegate?.delegate = selfEjecutar el método
self.sdkAPI?.DGSDKresetContrasenia(delegate: self, passwordReset: nuevaContraseña, user: usuario).then{ response in }.catch{
}Ejemplo:#
Android#
DGSDKRegister.handler = (registerResponse) -> { //Aquí se hace el manejo de la respuesta. if (registerResponse.type == DGSDKRegister.OperationType.CHANGEPASSWORD && registerResponse.code == 200){ //Aquí se hace el manejo de la respuesta tipo registro. }};IOS#
self.sdkAPI?.DGSDKresetContrasenia(delegate: self, passwordReset: snuevaContraseña, user: usuario).then({ response in
}).catch({ error in
})Códigos de Respuesta#
Estos son los códigos generales que se envían en las respuestas de los métodos.
- "200".- La solicitud se realizó con éxito.
- "400".- La solicitud estaba malformada.
- "401".- El usuario debe cambiar la contraseña.
- "403".- No se ha iniciado sesión.
- "500".- Error desconocido. La razón viene especificada en el mensaje de la respuesta.