Hola a todos!!
Subi una aplicación al appstore, luego de renegar bastante y con la ayuda de EREL, pero tengo un problema, yo la compilo con IOS 12 y no me genera ningun error funciona perfecto, pero evidentemente en IOS 13 si. Se cierra la aplicación cuando llamo a un modulo datos_envio.Show que no tiene nada de complicado
En un punto donde hay una selección en customlistview en el modulo principal, con selecciono una opción, ejecuta la sub show del modulo datos_envio, es en este sub que genera el error, se cierra inmediatamente cuando hago la seleccion.
Acá va el código donde hago la selección
Este es el codigo del modulo datos envio que es llamado cuando selecciono una opción del customlistview
Si alguien quiere ayudarme en privado puedo enviar el código completo
saludos a todos
Saludos
Subi una aplicación al appstore, luego de renegar bastante y con la ayuda de EREL, pero tengo un problema, yo la compilo con IOS 12 y no me genera ningun error funciona perfecto, pero evidentemente en IOS 13 si. Se cierra la aplicación cuando llamo a un modulo datos_envio.Show que no tiene nada de complicado
En un punto donde hay una selección en customlistview en el modulo principal, con selecciono una opción, ejecuta la sub show del modulo datos_envio, es en este sub que genera el error, se cierra inmediatamente cuando hago la seleccion.
Acá va el código donde hago la selección
B4X:
Sub Listinternet_ItemClick (Position As Int, Value As Object)
If Value = "01 Sin conexión" Then
resultado = "CONEXION"
opcion = Value
Pg.ResignFocus
Datos_envio.show
else if Value = "02 Problemas de navegación" Then
resultado = "NAVEGACION"
opcion = Value
Pg.ResignFocus
Datos_envio.show
else if Value = "03 Otros motivos" Then
resultado = "IN_OTROS"
opcion = Value
Pg.ResignFocus
Datos_envio.show
End If
End Sub
Este es el codigo del modulo datos envio que es llamado cuando selecciono una opción del customlistview
Datos_envio modulo:
Sub Process_Globals
'These global variables will be declared once when the application starts.
'Public variables can be accessed from all modules.
Private pg As Page
Dim xui As XUI
Dim audio3 As MediaPlayer
Dim archivo As String
Public capturado As Boolean
Private Botfoto As Button
Private Botenviar As Button
Private Editobs As TextView
Private Editsuministro As TextView
'Private Label1 As Label
Private label6 As Label
Private CheckBox_suministrook As Label
Private Label_main As Label
Private Label_reclamo As Label
Private Panel1 As Panel
Private Label4 As Label
Private ImageView1 As ImageView
Private ImageView_imagen As ImageView
Private Toast As clsToastMsg
Dim smsc As MessageComposer
Dim mailc As MailComposer
Private AnimatedCheckBoxmail As Switch
Private AnimatedCheckBoxsms As Switch
Dim suministro_validacion As Boolean
Private label_acepta As Label
Private cam As Camera
Private vv As VideoView
Private timer1 As Timer
Private TextView_mail As TextView
Private TextView_sms As TextView
End Sub
Public Sub Show ' ACA ES DONDE SE CIERRA LA APP TEORICAMENTE
If pg.IsInitialized = False Then
pg.Initialize("pg")
pg.RootPanel.LoadLayout("Datos_envio")
pg.HideBackButton = True
Main.NavControl.NavigationBarVisible = False
End If
Main.NavControl.ShowPage(pg)
Label_main.TextColor = Colors.Black
' Label_reclamo.Text = Inicio.opcion
Label_reclamo.TextColor = Colors.Black
CheckBox_suministrook.Visible = False
ImageView_imagen.Color = Colors.Transparent
Botenviar.Enabled =True
' If File.Exists(File.DirTemp, "editsuministro.txt") Then
' Editsuministro.Text =File.ReadString(File.DirTemp, "editsuministro.txt")
' End If
If Editsuministro.Text.Length = 6 Then
CheckBox_suministrook.Visible = True
CheckBox_suministrook.Visible = True
Editsuministro.TextColor = Colors.ARGB(255,88,171,54)
Else
CheckBox_suministrook.Visible = False
CheckBox_suministrook.Visible = False
Editsuministro.TextColor = Colors.ARGB(255,75,69,20)
End If
If (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD") Then
Botfoto.Visible = False
Editobs.Visible=True
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = True
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = True
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = True
TextView_mail.Visible = True
Botenviar.RequestFocus
Else
If (Inicio.resultado = "TE_OTROS" Or Inicio.resultado = "IN_OTROS") Then
Botfoto.Visible = False
Editobs.Visible = True
label_acepta.Visible = True
Botenviar.RequestFocus
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = True
AnimatedCheckBoxsms.Enabled = False
AnimatedCheckBoxmail.Visible = False
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = False
TextView_mail.Visible = False
Editobs.RequestFocus
Else
Botfoto.Visible = False
Editobs.Visible = False
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = True
AnimatedCheckBoxsms.Enabled = False
AnimatedCheckBoxmail.Visible = False
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = False
TextView_mail.Visible = False
End If
End If
Panel1.Color = Colors.White
Editsuministro.TextColor = Colors.Black
Toast.Initialize(pg, 17, True)
Botfoto.Enabled = cam.IsSupported
vv.Initialize("vv")
vv.View.Visible = False
'timer1.Initialize("timer1", 500)
End Sub
Sub Botfoto_Click
cam.Initialize("cam",pg)
'cam.SelectFromSavedPhotos(Sender, cam.TYPE_ALL)
cam.TakePicture
End Sub
Public Sub ImageToBytes(Image As Bitmap) As Byte()
Dim out As OutputStream
out.InitializeToBytesArray(0)
Image.WriteToStream(out, 100, "JPEG")
out.Close
Return out.ToBytesArray
End Sub
Sub cam_Complete (Success As Boolean, Image As Bitmap, VideoPath As String)
Dim p As Phone
If Success Then
If Image.IsInitialized Then
vv.View.Visible = False
ImageView_imagen.Bitmap = Image
p.AddImageToAlbum(Image)
ImageView_imagen.Visible = True
Dim b() As Byte = ImageToBytes(Image)
File.WriteBytes(File.DirTemp, "foto_test.jpeg", b)
capturado = True
Else
vv.View.Visible = True
vv.LoadVideo(VideoPath, "")
Log(p.AddVideoToAlbum(VideoPath, ""))
End If
Else
capturado = False
End If
End Sub
Sub Timer1_Tick
Dim no As NativeObject = vv
no = no.GetField("player").GetField("naturalSize")
End Sub
Sub Botenviar_Click
If AnimatedCheckBoxsms.Value=True Then
Botenviar.Enabled= smsc.CanSendText
If smsc.CanSendText = False Then
Toast.ShowToastMessage("Su dispositivo no esta preparado para enviar SMS",3000)
Else
enviar
End If
Else
If AnimatedCheckBoxmail.Value = True Then
Botenviar.Enabled= mailc.CanSendMail
If mailc.CanSendMail = False Then
Toast.ShowToastMessage("Primero debe configurar una cuenta de mail en su dispositivo",3000)
Else
enviar
End If
End If
End If
End Sub
Sub enviar
If Editsuministro.Text.Length = 6 Then
CheckBox_suministrook.Visible = True
File.WriteString(File.DirTemp,"editsuministro.txt",Editsuministro.Text)
Else
CheckBox_suministrook.Visible = False
Editsuministro.RequestFocus
End If
suministro_validacion = CheckBox_suministrook.Visible
If (suministro_validacion= True And AnimatedCheckBoxmail.value = True And ( Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD"))Then
enviar_mail
'audio3.Initialize2("audio3")
'audio3.Load(File.DirAssets,"AUD3.mp3")
'audio3.SetVolume(1,1)
'audio3.Play
Botenviar.Enabled = False
Editobs.Text = ""
Main.NavControl.ShowPage(pg)
Else if (suministro_validacion =True And AnimatedCheckBoxmail.Value = False And (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD"))Then
enviar_sms
' Dim audio3 As MediaPlayer
' audio3.Initialize(File.DirAssets,"cepral_confirmar_consulta.mp3","audio3")
' audio3.Play
Botenviar.Enabled = False
Editobs.Text = ""
Main.NavControl.ShowPage(pg)
Else if (suministro_validacion = False And AnimatedCheckBoxmail.Value = True And (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD"))Then
Toast.ShowToastMessage("El código de unidad debe tener 6 dígitos, incluye el dígito verificado, se encuentra en el margen superior derecho de su factura",3000)
Editsuministro.RequestFocus
Else if (suministro_validacion = False And AnimatedCheckBoxmail.Value = False And (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD"))Then
Toast.ShowToastMessage("El código de unidad debe tener 6 dígitos, se encuentra en el margen superior izquierdo de su factura",3000)
Editsuministro.RequestFocus
Else if (suministro_validacion = True And AnimatedCheckBoxsms.Value = True And (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD"))Then
enviar_sms
' Dim audio3 As MediaPlayer
' audio3.Initialize(File.DirAssets,"cepral_confirmar_consulta.mp3","audio3")
' audio3.Play
Botenviar.Enabled = False
Editobs.Text = ""
'Activity.Finish
Else if (suministro_validacion = False And AnimatedCheckBoxsms.Value= True And (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD"))Then
enviar_sms
'Dim audio3 As MediaPlayer
' audio3.Initialize(File.DirAssets,"cepral_confirmar_consulta.mp3","audio3")
' audio3.Play
Botenviar.Enabled = False
Editobs.Text = ""
'Activity.Finish
Else if (suministro_validacion = False And AnimatedCheckBoxmail.Value = False And Inicio.resultado <> "ALUMBRADO" And Inicio.resultado <> "DENUNCIA" And Inicio.resultado <> "SEGURIDAD") Then
Toast.ShowToastMessage("El código de unidad debe tener 6 dígitos, se encuentra en el margen superior izquierdo de su factura",3000)
Editsuministro.RequestFocus
Else if (suministro_validacion = True And AnimatedCheckBoxmail.Value= False And Inicio.resultado <> "ALUMBRADO" And Inicio.resultado <> "DENUNCIA" And Inicio.resultado <> "SEGURIDAD") Then
enviar_sms
' Dim audio3 As MediaPlayer
' audio3.Initialize(File.DirAssets,"cepral_confirmar_consulta.mp3","audio3")
' audio3.Play
Botenviar.Enabled = False
Editobs.Text = ""
Main.NavControl.ShowPage(pg)
End If
End Sub
Sub AnimatedCheckBoxsms_check_changed
End Sub
Sub animatedcheckboxmail_check_changed
End Sub
Sub enviar_sms()
Dim PhoneNumber As String = "023909090909090"
Dim Message As String = Inicio.resultado & " " & Editsuministro.Text & " " & Editobs.Text
Dim recibido As Boolean = True
Dim enviado As Boolean = True
smsc.Initialize("smsc")
smsc.SetRecipients(Array As String(PhoneNumber))
smsc.Body = Message
smsc.Show(pg)
End Sub
Sub smsc_Complete (Result As Int)
If Result = smsc.RESULT_SENT Then
Toast.ShowToastMessage("Mensaje enviado", 2000)
Else
Toast.ShowToastMessage("El mensaje no pudo enviarse, intente nuevamente", 2000)
End If
pg.ResignFocus
Sleep(3000)
Inicio.back
End Sub
Sub enviar_mail ()
Dim mailc As MailComposer
Dim subject As String = Inicio.resultado & " " & Editsuministro.Text
Dim body As String = Editobs.Text
mailc.Initialize("mailc")
mailc.SetToRecipients(Array("cont@cepr.com.ar"))
mailc.SetSubject(subject)
mailc.SetBody(body, True)
If capturado = True Then
mailc.AddAttachment(File.DirTemp,"foto_test.jpeg","octet-stream")
End If
mailc.Show(pg)
End Sub
Sub Mailc_Complete (Result As Int)
If Result = mailc.RESULT_SENT Then
Toast.ShowToastMessage("Correo enviado", 3000)
Else
Toast.ShowToastMessage("El correo no pudo ser enviado, intente nuevamente", 3000)
End If
pg.ResignFocus
Sleep(3000)
Inicio.back
End Sub
Sub editsuministro_FocusChanged (HasFocus As Boolean)
If Editsuministro.Text.Length = 6 Then
CheckBox_suministrook.Visible = True
File.WriteString(File.DirTemp,"editsuministro.txt",Editsuministro.Text)
If File.Exists(File.DirTemp,"editsuministro.txt") Then
Else
Toast.ShowToastMessage("Excelente! el código de unidad quedará grabado en su dispositivo y no tendrá que volver a cargarlo",3000)
End If
If Inicio.resultado ="SEGURIDAD" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado="ALUMBRADO" Then
CheckBox_suministrook.Visible = False
Else
CheckBox_suministrook.Visible = False
Editsuministro.RequestFocus
End If
End If
End Sub
Sub editobs_FocusChanged (HasFocus As Boolean)
suministro_validacion = CheckBox_suministrook.Visible
If suministro_validacion = False Then
If Inicio.resultado ="SEGURIDAD" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado="ALUMBRADO" Then
Else
Editsuministro.RequestFocus
End If
End If
End Sub
Sub editobs_TextChanged(Old As String, New As String)
If New.Length >= 159 Then
Toast.ShowToastMessage("Ha alcanzado el límite de caracteres que puede enviar", 3000)
Editobs.Text = Old
End If
End Sub
Sub editsuministro_TextChanged(Old As String, New As String)
If New.Length = 6 Then
Log(Editsuministro.Text.Length)
CheckBox_suministrook.Visible = True
Editsuministro.TextColor = Colors.ARGB(255,88,171,54)
File.WriteString(File.DirTemp,"editsuministro.txt",Editsuministro.Text)
Toast.ShowToastMessage("el código de unidad quedará grabado en su dispositivo, si desea modificarlo deberá hacerlo aqui",3000)
If (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD") Then
Editobs.RequestFocus
label_acepta.Visible = True
Else
Editsuministro.ResignFocus
Botenviar.RequestFocus
End If
Else
If New.Length > 6 Then
CheckBox_suministrook.Visible = False
Editsuministro.TextColor = Colors.ARGB(255,75,69,20)
Toast.ShowToastMessage("El código de unidad tiene 6 dígitos, vuelve a intentarlo",3000)
Editsuministro.Text = ""
Editsuministro.Text = ""
Else
CheckBox_suministrook.Visible = False
Editsuministro.TextColor = Colors.ARGB(255,75,69,20)
End If
End If
End Sub
Sub Editobs_EndEdit
Editobs.ResignFocus
End Sub
Sub Editobs_Click
Editobs.RequestFocus
label_acepta.Visible = True
End Sub
Sub Pg_Click
pg.ResignFocus
End Sub
Sub AnimatedCheckBoxmail_ValueChanged (Value As Boolean)
If AnimatedCheckBoxmail.Value=True Then
If mailc.CanSendMail = False Then
Botenviar.Enabled = mailc.CanSendMail
Toast.ShowToastMessage("Para enviar un mail debe configurar una cuenta en su dispositivo primero", 3000)
End If
If (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD") Then
Botfoto.Visible = True
Editobs.Visible = True
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = False
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = True
AnimatedCheckBoxmail.Value = True
AnimatedCheckBoxmail.Enabled = True
Else
Botfoto.Visible = False
Editobs.Visible = False
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = False
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = False
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = False
End If
Else
If (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD") Then
Botfoto.Visible = False
Editobs.Visible = True
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = True
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = True
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = True
Else
Botfoto.Visible = False
Editobs.Visible = False
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = True
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = False
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = False
End If
End If
End Sub
Sub AnimatedCheckBoxsms_ValueChanged (Value As Boolean)
If AnimatedCheckBoxsms.Value=True Then
Botenviar.Enabled = smsc.CanSendText
If (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD") Then
Botfoto.Visible = False
Editobs.Visible = True
ImageView_imagen.Visible = False
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = True
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = True
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = True
Else
Botfoto.Visible = False
Editobs.Visible = False
ImageView_imagen.Visible = False
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value= True
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = False
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = False
End If
Else
If (Inicio.resultado = "ALUMBRADO" Or Inicio.resultado = "DENUNCIA" Or Inicio.resultado = "SEGURIDAD") Then
Botfoto.Visible = True
Editobs.Visible = True
ImageView_imagen.Visible = True
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = False
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = True
AnimatedCheckBoxmail.Value = True
AnimatedCheckBoxmail.Enabled = True
Else
Botfoto.Visible = False
Editobs.Visible = False
AnimatedCheckBoxsms.Visible = True
AnimatedCheckBoxsms.Value = False
AnimatedCheckBoxsms.Enabled = True
AnimatedCheckBoxmail.Visible = False
AnimatedCheckBoxmail.Value = False
AnimatedCheckBoxmail.Enabled = False
End If
End If
End Sub
Sub label_acepta_Click
Editobs.ResignFocus
label_acepta.Visible = False
End Sub
Si alguien quiere ayudarme en privado puedo enviar el código completo
saludos a todos
Saludos