Hola, antes que nada quiero decir que cree una aplicación usando un web service de temperatura y me funcionó PERFECTO.
El punto es que cuando trato de implementar este mismo código para construir un widget ya no funciona, solo recibo un mensaje que dice que se detuvo el widget. Anexo el código porque no sé porqué mis aplicaciones las guarda de manera muy pesada (más de 512k) y no me permite subir el archivo.
Presento el código que mencioné y reitero que éste funcionó correctamente. Aparte anexo también una imagen del layout usado.
Es importante mencionar que ya he solicitado apoyo al foro en inglés y amablemente me contestan, sin embargo, las respuestas son como que más bien tips, pero no sirven de mucho, también les comento que cuando quede resuelto subiré las solución para que esté al alcance de toda la comunidad.
Si mi explicación no ha sido clara o falta más información, por favor déjenme saber.
Anexo también las imágenes usadas en la aplicación.
Gracias anticipadas.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			El punto es que cuando trato de implementar este mismo código para construir un widget ya no funciona, solo recibo un mensaje que dice que se detuvo el widget. Anexo el código porque no sé porqué mis aplicaciones las guarda de manera muy pesada (más de 512k) y no me permite subir el archivo.
Presento el código que mencioné y reitero que éste funcionó correctamente. Aparte anexo también una imagen del layout usado.
Es importante mencionar que ya he solicitado apoyo al foro en inglés y amablemente me contestan, sin embargo, las respuestas son como que más bien tips, pero no sirven de mucho, también les comento que cuando quede resuelto subiré las solución para que esté al alcance de toda la comunidad.
Si mi explicación no ha sido clara o falta más información, por favor déjenme saber.
Anexo también las imágenes usadas en la aplicación.
Gracias anticipadas.
			
				B4X:
			
		
		
		#Region  Project Attributes
    #ApplicationLabel: TIM_Clima
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region
#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region
Sub Process_Globals
  
    Dim HttpClient1 As HttpClient
End Sub
Sub Globals
  
    Dim URL As String
  Dim XML As String
    Dim Ciudad As String : Ciudad = "acapulco"
    Dim Pais As String   : Pais = "Mexico"
    '''''''''''''''''''''''''''''''''''''''''''''
    Dim lblTemperature As Label
    Dim lblLocation As Label
    Dim lblVisibility As Label
    Dim lblSkyConditions As Label
    Dim lblRelativeHumidity As Label
    Dim imgWeather As ImageView
    '''''''''''''''''''''''''''''''''''''''''''''
    Dim intFin As Int                                        'Indice del fin de búsqueda del string correspondiente
    Dim strResult As String                       'Trae inf del Resultado para validar si se tiene información
  
End Sub
Sub Activity_Create(FirstTime As Boolean)
     Activity.LoadLayout("lyoWeather")
  
   If FirstTime Then
     HttpClient1.Initialize ("HttpClient1")
   End If
   ConsumirServicio
   
End Sub
Sub ConsumirServicio()
     
    Dim Request As HttpRequest
      
    URL = "http://www.webservicex.net/globalweather.asmx"
  
    XML = XML & "<soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope' xmlns:web='http://www.webserviceX.NET'>"
    XML = XML & "<soap:Header/>"
    XML = XML & "<soap:Body>"
    XML = XML & "<web:GetWeather>"
    XML = XML & "<web:CityName>" & Ciudad & "</web:CityName>"
    XML = XML & "<web:CountryName>" & Pais & "</web:CountryName>"
    XML = XML & "</web:GetWeather>"
    XML = XML & "</soap:Body>"
    XML = XML & "</soap:Envelope>"
              
  Request.InitializePost2(URL, XML.GetBytes("UTF8"))
  Request.SetHeader("Content-Type", "application/soap+xml; charset=utf-8")                                                                  
  Request.Timeout = 600000 'Setea el tiempo a 60 segundos
  If HttpClient1.Execute(Request, 1) = False Then Return
     
    ProgressDialogShow("Esperando Respuesta...")
   
End Sub
Sub HttpClient1_ResponseSuccess (Response As HttpResponse, TaskId As Int)
 
    ProgressDialogHide
  
  Dim resultSoapXML As String
  
  resultSoapXML = Response.GetString("UTF8")
    GetInfo(resultSoapXML)
End Sub
Sub GetInfo(ResultSoapXML As String)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''INI - substrings para ir obteniendo la Información del Web Service del Clima'''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Valida si se tiene información para la localidad seleccionada
    strResult = ResultSoapXML.SubString(ResultSoapXML.IndexOf("<GetWeatherResult>")+ 18)
    intFin = strResult.IndexOf("</GetWeatherResult>")
    strResult = strResult.subString2(0, intFin)
  
    If strResult = "Data Not Found" Then
        ToastMessageShow ("No se tiene Información de Temperatura para " & Ciudad & "!", True)
        Activity.Finish   
    End If
    Set_Location(ResultSoapXML)               'Localidad
    Set_Temperature(ResultSoapXML)        'Temperatura
    Set_Visibility(ResultSoapXML)              'Visibilidad
    Set_SkyConditions(ResultSoapXML)      'Condiciones Climáticas
    Set_RelativeHumidity(ResultSoapXML)   'Humedad relativa
'''    'Hora
'''    strTime = ResultSoapXML.SubString(ResultSoapXML.IndexOf("<Time>")+ 12)
'''    intFin = strTime.IndexOf("</Time>")
'''    strTime = strTime.subString2(0, intFin)
'''  
'''    'Wind (Viento)
'''    strWind = ResultSoapXML.SubString(ResultSoapXML.IndexOf("<Wind>")+ 12)
'''    intFin = strWind.IndexOf("</Wind>")
'''    strWind = strWind.subString2(0, intFin)
'''      
'''    'DewPoint (Humedad)
'''    strDewPoint = ResultSoapXML.SubString(ResultSoapXML.IndexOf("<DewPoint>")+ 16)
'''    intFin = strDewPoint.IndexOf("</DewPoint>")
'''    strDewPoint = strDewPoint.subString2(0, intFin)
'''
'''    'Pressure (presión Atmosférica)
'''    strPressure = ResultSoapXML.SubString(ResultSoapXML.IndexOf("<Pressure>")+ 16)
'''    intFin = strPressure.IndexOf("</Pressure>")
'''    strPressure = strPressure.subString2(0, intFin)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''FIN - substrings para ir obteniendo la Información del Web Service del Clima'''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
Sub Set_Temperature(Temperatura As String)   'Temperatura
    Temperatura = Temperatura.subString2(Temperatura.IndexOf("<Temperature>")+ 19, Temperatura.IndexOf("</Temperature>") )
    Temperatura = Temperatura.subString2(Temperatura.IndexOf("(")+ 1, Temperatura.IndexOf("C)") )
    Temperatura = Temperatura & " " &  "°C"
    lblTemperature.Text = Temperatura
  
End Sub
Sub Set_Location(Location As String)   'Localidad
    Location = Location.SubString2(Location.IndexOf("<Location>")+ 16, Location.IndexOf(Pais))
    lblLocation.Text = Location & " " & Pais
  
End Sub
Sub Set_SkyConditions(SkyConditions As String)   'Condiciones Climáticas
    SkyConditions = SkyConditions.SubString2(SkyConditions.IndexOf("<SkyConditions>")+ 21, SkyConditions.IndexOf("</SkyConditions>"))
      
    Select SkyConditions.Trim
      
        Case "partly cloudy"
            SkyConditions = "Parcialmente Nublado"  
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "002PartlyCloudy.png")
        Case "mostly cloudy"
            SkyConditions = "Mayormente Nublado"
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "003MostlyCloudy.png")
        Case "overcast"
            SkyConditions = "Completamente Nublado"
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "004Overcast.png")
        Case "mostly clear"
            SkyConditions = "Cielo mayormente despejado"
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "001Clear.png")
        Case "sunny"
            SkyConditions = "Soleado"  
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "006Sunny.png")
        Case "obscured"
            SkyConditions = "Cielo completamente cubierto de cubes"  
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "005Obcured.png")
        Case  "clear"
            SkyConditions = "Despejado"
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "001Clear.png")
        Case Else
            imgWeather.Bitmap= LoadBitmap(File.DirAssets, "000Weather.png")
              
    End Select
    lblSkyConditions.Text = "Condición Climática: " & SkyConditions
      
End Sub
Sub Set_Visibility(Visibility As String)   'Visibilidad
    Dim dblCantidad As Float         'Cantidad
    Dim strCnvrtMiles_Km As String      'Convierte de Millas a Kilómetros
    dblCantidad = Visibility.SubString2(Visibility.IndexOf("<Visibility>")+ 18, Visibility.IndexOf("mile"))
    Visibility = Visibility.SubString(Visibility.IndexOf("<Visibility>")+ 18)
    Visibility = Visibility.SubString2(Visibility.IndexOf(":"), Visibility.IndexOf("</Visibility>"))
    strCnvrtMiles_Km = 1.6093470879 * dblCantidad 'Una Milla equivale a 1.6093470879 Km
    strCnvrtMiles_Km = NumberFormat(strCnvrtMiles_Km, 1, 2)
    lblVisibility.Text = "Visibilidad: " & strCnvrtMiles_Km & " Km " & Visibility
  
End Sub
Sub Set_RelativeHumidity(RelativeHumidity As String)   'Temperature (Temperatura)
    RelativeHumidity = RelativeHumidity.SubString2(RelativeHumidity.IndexOf("<RelativeHumidity>")+ 24, RelativeHumidity.IndexOf("</RelativeHumidity>"))
    lblRelativeHumidity.Text = "Humedad Relativa:  " & RelativeHumidity
  
End Sub
Sub HttpClient1_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)  
    ProgressDialogHide
  Dim resultSoapXML As String
  
  resultSoapXML = Response.GetString("UTF8")
    Msgbox(resultSoapXML,"")
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End SubAttachments
			
				Last edited: 
			
		
	
								
								
									
	
								
							
							 
				 
			 
 
		 
			 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		