Webpart work in Android Sharepoint App but not in iOS Sharepoint App

%3CLINGO-SUB%20id%3D%22lingo-sub-251533%22%20slang%3D%22en-US%22%3EWebpart%20work%20in%20Android%20Sharepoint%20App%20but%20not%20in%20iOS%20Sharepoint%20App%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-251533%22%20slang%3D%22en-US%22%3E%3CP%3EWe%20have%20added%20one%20custom%20webpart%20in%20Sharepoint%20online%20page.%20The%20webpart%20will%20calling%20webAPI%20and%20displaying%20the%20results.%3C%2FP%3E%3CP%3EThe%20webpart%20works%20fine%20in%20IE%2C%20Chrome%20and%20Safari%20on%20desktop%20and%20mobile.%20It%20works%20for%20android%20Sharepoint%20App%20but%20the%20data%20doesn't%20appear%20for%20Sharepoint%20App%20in%20iOS.%3C%2FP%3E%3CP%3EAlso%20global%20navigation%20is%20not%20working%20for%20Sharepoint%20App%20iOS.%20Please%20check%20below%20screen.%3C%2FP%3E%3CP%3EDetails%20are%20available%20on%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fanswers.microsoft.com%2Fen-us%2Fmsoffice%2Fforum%2Fmsoffice_sharepoint-mso_imobile-msoversion_other%2Fwebpart-work-in-android-but-not-in-ios%2Fe55f336c-c510-4666-b46d-e6a72fb4841b%3FmessageId%3D9b2d4ad0-aa01-4cd9-a0be-6888a0ce6dcd%26nbsp%3B%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fanswers.microsoft.com%2Fen-us%2Fmsoffice%2Fforum%2Fmsoffice_sharepoint-mso_imobile-msoversion_other%2Fwebpart-work-in-android-but-not-in-ios%2Fe55f336c-c510-4666-b46d-e6a72fb4841b%3FmessageId%3D9b2d4ad0-aa01-4cd9-a0be-6888a0ce6dcd%26nbsp%3B%3C%2FA%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EBelow%20is%20the%20code%20for%20your%20reference%3C%2FP%3E%3CP%3EWeb%20API%20code%3A%3C%2FP%3E%3CP%3Eusing%20IntranetServices.Models%3B%3CBR%20%2F%3Eusing%20Newtonsoft.Json%3B%3CBR%20%2F%3Eusing%20System%3B%3CBR%20%2F%3Eusing%20System.Configuration%3B%3CBR%20%2F%3Eusing%20System.Net%3B%3CBR%20%2F%3Eusing%20System.Net.Http%3B%3CBR%20%2F%3Eusing%20System.Security.Cryptography%3B%3CBR%20%2F%3Eusing%20System.Text%3B%3CBR%20%2F%3Eusing%20System.Threading.Tasks%3B%3CBR%20%2F%3Eusing%20System.Web.Http%3B%3CBR%20%2F%3Eusing%20System.Web.Http.Cors%3B%3C%2FP%3E%3CP%3Enamespace%20IntranetServices.Controllers%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%5BRoutePrefix(%22api%2Fweather%22)%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20class%20WeatherController%20%3A%20ApiController%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%5BEnableCors(%22*%22%2C%20%22*%22%2C%20%22POST%22%2C%20SupportsCredentials%20%3D%20true)%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%5BRoute(%22weatherdata%22)%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%5BHttpPost%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20async%20Task%3CHTTPRESPONSEMESSAGE%3E%20GetWeatherData(WeatherDataRequest%20dataRequest)%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20HttpResponseMessage%20httpResponse%20%3D%20null%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20WeatherDataDetails%20weatherInfo%20%3D%20null%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20try%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20client%20%3D%20new%20HttpClient()%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20weatherAPIURL%20%3D%20FormatWeatherURL(dataRequest)%3B%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20httpResponse%20%3D%20client.GetAsync(weatherAPIURL).Result%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if%20(httpResponse.IsSuccessStatusCode)%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20weatherContentJSON%20%3D%20await%20httpResponse.Content.ReadAsStringAsync()%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20dynamic%20jsonData%20%3D%20JsonConvert.DeserializeObject%3CDYNAMIC%3E(weatherContentJSON)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20weatherInfo%20%3D%20new%20WeatherDataDetails%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20ProviderName%20%3D%20jsonData.metadata.provider_name%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20ProviderURL%20%3D%20jsonData.metadata.provider_url%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20LocationName%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.name%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20LocationState%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.state%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20LocationPostcode%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.postcode%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20ForecastDate%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.local_forecasts.forecasts%5B0%5D.date%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20ForecastDayname%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.local_forecasts.forecasts%5B0%5D.day_name%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20MinTemp%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.local_forecasts.forecasts%5B0%5D.min%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20MaxTemp%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.local_forecasts.forecasts%5B0%5D.max%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20IconPhrase%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.local_forecasts.forecasts%5B0%5D.icon_phrase%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20IconFilename%20%3D%20jsonData.countries%5B0%5D.locations%5B0%5D.local_forecasts.forecasts%5B0%5D.icon_filename%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20jsonResponse%20%3D%20JsonConvert.SerializeObject(weatherInfo)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20httpResponse%20%3D%20Request.CreateResponse(HttpStatusCode.OK%2C%20jsonResponse)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20catch%20(Exception%20ex)%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20httpResponse%20%3D%20Request.CreateResponse(HttpStatusCode.NotFound%2C%20%22Weather%20data%20not%20found%22)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20return%20httpResponse%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20%3CSUMMARY%3E%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20construct%20weather%20data%20url%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20%3C%2FSUMMARY%3E%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20%3COBJECT%3E%3CPARAM%20name%3D%22%26quot%3BdataRequest%26quot%3B%22%20%2F%3E%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20%3CRETURNS%3Eweather%20data%20endpoint%20with%20query%20parameter%3C%2FRETURNS%3E%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20private%20string%20FormatWeatherURL(WeatherDataRequest%20dataRequest)%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20weatherApiURL%20%3D%20string.Empty%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20querystring%20%3D%20string.Empty%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if%20(!string.IsNullOrEmpty(dataRequest.LocPostCode))%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20querystring%20%3D%20%24%22%26amp%3Bpc%3D%7BdataRequest.LocPostCode%7D%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20else%20if%20(!string.IsNullOrEmpty(dataRequest.Latitude)%20%26amp%3B%26amp%3B%20!string.IsNullOrEmpty(dataRequest.Longitude))%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20querystring%20%3D%20%24%22%26amp%3Blat%3D%7BdataRequest.Latitude%7D%26amp%3Blon%3D%7BdataRequest.Longitude%7D%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20else%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20querystring%20%3D%20%22%26amp%3Bpc%3D5000%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20weatherkeyEndPoint%20%3D%20ConfigurationManager.AppSettings%5B%22wz%3AAPIEndpoint%22%5D%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20userID%20%3D%20ConfigurationManager.AppSettings%5B%22wz%3AEldersUserID%22%5D%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20passKey%20%3D%20GenerateKey()%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20weatherApiURL%20%3D%20%24%22%7BweatherkeyEndPoint%7D%2F%3Flt%3Daploc%7Bquerystring%7D%26amp%3Bfc%3D1%26amp%3Bformat%3Djson%26amp%3Brollover%3D24%26amp%3Bu%3D%7BuserID%7D%26amp%3Bk%3D%7BpassKey%7D%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20return%20weatherApiURL%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%5BRoute(%22%7Bid%3Aint%7D%22)%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%5BHttpGet%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20GetWeather(int%20id)%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20return%20%22success%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20%3CSUMMARY%3E%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20Generate%20weather%20zone%20access%20key%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20%3C%2FSUMMARY%3E%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%2F%2F%2F%20%3CRETURNS%3Eweather%20zone%20access%20key%3C%2FRETURNS%3E%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20private%20string%20GenerateKey()%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20StringBuilder%20hex%20%3D%20new%20StringBuilder()%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20weatherAPIAccessPassword%20%3D%20ConfigurationManager.AppSettings%5B%22wz%3AEldersPassword%22%5D%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20try%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20genKey%20%3D%20string.Empty%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%20today%20%3D%20DateTime.Today.ToString(%22dd%2FMM%2Fyy%22)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20if%20(!string.IsNullOrEmpty(today))%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20string%5B%5D%20str%20%3D%20today.Split('%2F')%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20genKey%20%3D%20Convert.ToString(Convert.ToInt32(str%5B0%5D)%20*%202%20%2B%20Convert.ToInt32(str%5B1%5D)%20*%20300%20%2B%20Convert.ToInt32(str%5B2%5D)%20*%20170000)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20genKey%20%3D%20string.Concat(genKey%2C%20weatherAPIAccessPassword)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20MD5CryptoServiceProvider%20md5provider%20%3D%20new%20MD5CryptoServiceProvider()%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20md5provider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(genKey))%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20byte%5B%5D%20result%20%3D%20md5provider.Hash%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20for%20(int%20i%20%3D%200%3B%20i%20%26lt%3B%20result.Length%3B%20i%2B%2B)%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20hex.Append(result%5Bi%5D.ToString(%22x2%22))%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20return%20hex.ToString()%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20catch%20(Exception%20ex)%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20throw%20ex%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%7D%3C%2FOBJECT%3E%3C%2FDYNAMIC%3E%3C%2FHTTPRESPONSEMESSAGE%3E%3C%2FP%3E%3CP%3EModel%20code%20(return%20type%20lass)%3A%3C%2FP%3E%3CP%3Eusing%20System%3B%3CBR%20%2F%3Eusing%20System.Collections.Generic%3B%3CBR%20%2F%3Eusing%20System.Linq%3B%3CBR%20%2F%3Eusing%20System.Web%3B%3CBR%20%2F%3E%26nbsp%3B%3CBR%20%2F%3Enamespace%20IntranetServices.Models%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%5BSerializable%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20class%20WeatherDataDetails%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20ProviderName%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20ProviderURL%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20LocationName%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20LocationState%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20LocationPostcode%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20ForecastDayname%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20ForecastDate%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20MinTemp%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20MaxTemp%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20IconPhrase%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20IconFilename%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%5BSerializable%5D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20class%20WeatherDataRequest%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20LocationName%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20Longitude%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20Latitude%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20string%20LocPostCode%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20public%20int%20NumberofDays%20%7B%20get%3B%20set%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3CBR%20%2F%3E%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3EAPI%20%3A%26nbsp%3B%3CA%20href%3D%22http%3A%2F%2Fws1.theweather.com.au%2F%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttp%3A%2F%2Fws1.theweather.com.au%2F%3C%2FA%3E%3CBR%20%2F%3Eit%20requires%20USer%20ID%20and%20Password%20as%20well%26nbsp%3B%3C%2FP%3E%3CP%3EHome%20Page%20code%3A%3C%2FP%3E%3CP%3E%26nbsp%3Bif%20(navigator.geolocation)%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20navigator.geolocation.getCurrentPosition(locationSuccess%2C%20locationError)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FP%3E%3CP%3Efunction%20locationSuccess(position)%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20latititude%20%3D%20position.coords.latitude%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20longtitude%20%3D%20position.coords.longitude%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20weatherRequest%20%3D%20%7B%20Longitude%3A%20longtitude%2C%20Latitude%3A%20latititude%20%7D%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20getWeatherData(weatherRequest)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FP%3E%3CP%3Efunction%20getWeatherData(weatherReq)%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20siteUrl%20%3D%20_spPageContextInfo.siteAbsoluteUrl%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20weatherApiUri%20%3D%20%22https%3A%2F%2F%3CAZURE%20web%3D%22%22%20app%3D%22%22%3E%2Fapi%2Fweather%2Fweatherdata%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%24.ajax(%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20type%3A%20%22POST%22%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20data%3A%20weatherReq%2C%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20url%3A%20weatherApiUri%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D).done(function%20(response)%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20obj%20%3D%20JSON.parse(response)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20document.getElementById(%22weatherlocation%22).innerHTML%20%3D%20obj.locationName%20%2B%20%22%2C%20%22%20%2B%20obj.locationState%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20document.getElementById(%22mintemp%22).innerHTML%20%3D%20obj.minTemp%20%2B%20%22%3CSPAN%3E%26amp%3B%238451%3B%3C%2FSPAN%3E%26nbsp%3B%26nbsp%3B%20Min%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20document.getElementById(%22maxtemp%22).innerHTML%20%3D%20obj.maxTemp%20%2B%20%22%3CSPAN%3E%26amp%3B%238451%3B%3C%2FSPAN%3E%26nbsp%3B%26nbsp%3B%20Max%22%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20document.getElementById(%22forecastday%22).innerHTML%20%3D%20obj.forecastDayname%20%2B%20%22%2C%20%22%20%2B%20obj.forecastDate%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20document.getElementById(%22weatherPhrase%22).innerHTML%20%3D%20obj.iconPhrase%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20iconFileWithExt%20%3D%20obj.iconFilename%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20var%20iconfileName%20%3D%20iconFileWithExt.substring(0%2C%20iconFileWithExt.length%20-%204)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%24(%22div%23weatherIcon%20img%22).attr('src'%2C%20siteUrl%20%2B%20%22%2FHUB%2FStyle%20Library%2Fweather%2Fimages%2F%22%20%2B%20iconfileName%20%2B%20%22.svg%22)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D).fail(function%20(jqXHR%2C%20textStatus%2C%20errorThrown)%20%7B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20console.log('Calling%20weather%20API%20failed.%20'%20%2B%20errorThrown)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D)%3B%3CBR%20%2F%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3C%2FAZURE%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-261787%22%20slang%3D%22en-US%22%3ERe%3A%20Webpart%20work%20in%20Android%20Sharepoint%20App%20but%20not%20in%20iOS%20Sharepoint%20App%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-261787%22%20slang%3D%22en-US%22%3E%3CP%3EAny%20suggestions%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-251638%22%20slang%3D%22en-US%22%3ERe%3A%20Webpart%20work%20in%20Android%20Sharepoint%20App%20but%20not%20in%20iOS%20Sharepoint%20App%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-251638%22%20slang%3D%22en-US%22%3E%3CP%3EWeb%20API%20is%20developed%20using%20VS%20and%20deployed%2Fpublished%20in%20AZURE.%26nbsp%3B%3C%2FP%3E%3CP%3EWe%20have%20used%20content%20editor%20webpart%20to%20provision%20with%20webpart%20(added%20CSOm%20code%20in%20txt%20file%20and%20called%20same%20through%20content%20editor%20webpart)%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-251596%22%20slang%3D%22en-US%22%3ERe%3A%20Webpart%20work%20in%20Android%20Sharepoint%20App%20but%20not%20in%20iOS%20Sharepoint%20App%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-251596%22%20slang%3D%22en-US%22%3EOut%20of%20curiosity%3A%20What%20have%20you%20used%20to%20develop%20this%20WebPart%20and%20how%20did%20you%20provision%20to%20SharePoint%3F%3C%2FLINGO-BODY%3E
Highlighted
New Contributor

We have added one custom webpart in Sharepoint online page. The webpart will calling webAPI and displaying the results.

The webpart works fine in IE, Chrome and Safari on desktop and mobile. It works for android Sharepoint App but the data doesn't appear for Sharepoint App in iOS.

Also global navigation is not working for Sharepoint App iOS. Please check below screen.

Details are available on https://answers.microsoft.com/en-us/msoffice/forum/msoffice_sharepoint-mso_imobile-msoversion_other/...

 

Below is the code for your reference

Web API code:

using IntranetServices.Models;
using Newtonsoft.Json;
using System;
using System.Configuration;
using System.Net;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Cors;

namespace IntranetServices.Controllers
{
    [RoutePrefix("api/weather")]
    public class WeatherController : ApiController
    {
        [EnableCors("*", "*", "POST", SupportsCredentials = true)]
        [Route("weatherdata")]
        [HttpPost]
        public async Task<HttpResponseMessage> GetWeatherData(WeatherDataRequest dataRequest)
        {
            HttpResponseMessage httpResponse = null;
            WeatherDataDetails weatherInfo = null;
            try
            {
                var client = new HttpClient();
                string weatherAPIURL = FormatWeatherURL(dataRequest); 
                httpResponse = client.GetAsync(weatherAPIURL).Result;
                if (httpResponse.IsSuccessStatusCode)
                {
                    var weatherContentJSON = await httpResponse.Content.ReadAsStringAsync();
                    dynamic jsonData = JsonConvert.DeserializeObject<dynamic>(weatherContentJSON);
                    weatherInfo = new WeatherDataDetails
                    {
                        ProviderName = jsonData.metadata.provider_name,
                        ProviderURL = jsonData.metadata.provider_url,
                        LocationName = jsonData.countries[0].locations[0].name,
                        LocationState = jsonData.countries[0].locations[0].state,
                        LocationPostcode = jsonData.countries[0].locations[0].postcode,
                        ForecastDate = jsonData.countries[0].locations[0].local_forecasts.forecasts[0].date,
                        ForecastDayname = jsonData.countries[0].locations[0].local_forecasts.forecasts[0].day_name,
                        MinTemp = jsonData.countries[0].locations[0].local_forecasts.forecasts[0].min,
                        MaxTemp = jsonData.countries[0].locations[0].local_forecasts.forecasts[0].max,
                        IconPhrase = jsonData.countries[0].locations[0].local_forecasts.forecasts[0].icon_phrase,
                        IconFilename = jsonData.countries[0].locations[0].local_forecasts.forecasts[0].icon_filename
                    };
                    string jsonResponse = JsonConvert.SerializeObject(weatherInfo);
                    httpResponse = Request.CreateResponse(HttpStatusCode.OK, jsonResponse);
                }
            }
            catch (Exception ex)
            {
                httpResponse = Request.CreateResponse(HttpStatusCode.NotFound, "Weather data not found");
            }
            return httpResponse;
        }
        /// <summary>
        /// construct weather data url
        /// </summary>
        /// <param name="dataRequest"></param>
        /// <returns>weather data endpoint with query parameter</returns>
        private string FormatWeatherURL(WeatherDataRequest dataRequest)
        {
            string weatherApiURL = string.Empty;
            string querystring = string.Empty;
            if (!string.IsNullOrEmpty(dataRequest.LocPostCode))
            {
                querystring = $"&pc={dataRequest.LocPostCode}";
            }
            else if (!string.IsNullOrEmpty(dataRequest.Latitude) && !string.IsNullOrEmpty(dataRequest.Longitude))
            {
                querystring = $"&lat={dataRequest.Latitude}&lon={dataRequest.Longitude}";
            }
            else
            {
                querystring = "&pc=5000";
            }
            string weatherkeyEndPoint = ConfigurationManager.AppSettings["wz:APIEndpoint"];
            string userID = ConfigurationManager.AppSettings["wz:EldersUserID"];
            string passKey = GenerateKey();
            weatherApiURL = $"{weatherkeyEndPoint}/?lt=aploc{querystring}&fc=1&format=json&rollover=24&u={userID}&k={passKey}";
           
            return weatherApiURL;
        }
           
        [Route("{id:int}")]
        [HttpGet]
        public string GetWeather(int id)
        {
           
            return "success";
        }
        /// <summary>
        /// Generate weather zone access key
        /// </summary>
        /// <returns>weather zone access key</returns>
        private string GenerateKey()
        {
            StringBuilder hex = new StringBuilder();
            string weatherAPIAccessPassword = ConfigurationManager.AppSettings["wz:EldersPassword"];
            try
            {
                string genKey = string.Empty;
                string today = DateTime.Today.ToString("dd/MM/yy");
                if (!string.IsNullOrEmpty(today))
                {
                    string[] str = today.Split('/');
                    genKey = Convert.ToString(Convert.ToInt32(str[0]) * 2 + Convert.ToInt32(str[1]) * 300 + Convert.ToInt32(str[2]) * 170000);
                    genKey = string.Concat(genKey, weatherAPIAccessPassword);
                    MD5CryptoServiceProvider md5provider = new MD5CryptoServiceProvider();
                    md5provider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(genKey));
                    byte[] result = md5provider.Hash;
                    for (int i = 0; i < result.Length; i++)
                    {
                        hex.Append(result[i].ToString("x2"));
                    }
                }
                return hex.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}

Model code (return type lass):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
namespace IntranetServices.Models
{
 
    [Serializable]
    public class WeatherDataDetails
    {
        public string ProviderName { get; set; }
        public string ProviderURL { get; set; }
        public string LocationName { get; set; }
        public string LocationState { get; set; }
        public string LocationPostcode { get; set; }
        public string ForecastDayname { get; set; }
        public string ForecastDate { get; set; }
        public string MinTemp { get; set; }
        public string MaxTemp { get; set; }
        public string IconPhrase { get; set; }
        public string IconFilename { get; set; }
    }
 
    [Serializable]
    public class WeatherDataRequest
    {
        public string LocationName { get; set; }
        public string Longitude { get; set; }
        public string Latitude { get; set; }
        public string LocPostCode { get; set; }
        public int NumberofDays { get; set; }
    }
 
 
}

API : http://ws1.theweather.com.au/
it requires USer ID and Password as well 

Home Page code:

 if (navigator.geolocation) {
                    navigator.geolocation.getCurrentPosition(locationSuccess, locationError);
                }

function locationSuccess(position) {
            var latititude = position.coords.latitude;
            var longtitude = position.coords.longitude;
            var weatherRequest = { Longitude: longtitude, Latitude: latititude };
            getWeatherData(weatherRequest);
        }

function getWeatherData(weatherReq) {
            var siteUrl = _spPageContextInfo.siteAbsoluteUrl;
            var weatherApiUri = "https://<azure web App>/api/weather/weatherdata";
            $.ajax({
                type: "POST",
                data: weatherReq,
                url: weatherApiUri
            }).done(function (response) {
                var obj = JSON.parse(response);
                document.getElementById("weatherlocation").innerHTML = obj.locationName + ", " + obj.locationState;
                document.getElementById("mintemp").innerHTML = obj.minTemp + "<span>&#8451;</span>   Min";
                document.getElementById("maxtemp").innerHTML = obj.maxTemp + "<span>&#8451;</span>   Max";
                document.getElementById("forecastday").innerHTML = obj.forecastDayname + ", " + obj.forecastDate;
                document.getElementById("weatherPhrase").innerHTML = obj.iconPhrase;
                var iconFileWithExt = obj.iconFilename;
                var iconfileName = iconFileWithExt.substring(0, iconFileWithExt.length - 4);
             
                $("div#weatherIcon img").attr('src', siteUrl + "/HUB/Style Library/weather/images/" + iconfileName + ".svg");
        
            }).fail(function (jqXHR, textStatus, errorThrown) {
                console.log('Calling weather API failed. ' + errorThrown);
            });
        }

 

 

 

3 Replies
Highlighted
Out of curiosity: What have you used to develop this WebPart and how did you provision to SharePoint?
Highlighted

Web API is developed using VS and deployed/published in AZURE. 

We have used content editor webpart to provision with webpart (added CSOm code in txt file and called same through content editor webpart)

Highlighted