public void DidReceiveScriptMessage(WKUserContentController userContentController, WKScriptMessage message) { try { var data = message.Body.ToString(); var imageBytes = HeatMapHelper.GetHeatMapImageBytes(data); NSData imageData = NSData.FromArray(imageBytes); UIImage image = UIImage.LoadFromData(imageData); _img.Image = image; _img.Hidden = false; } catch (System.Exception e) { System.Diagnostics.Debug.WriteLine($"Error decoding heat map image: {e}"); } }
public void HeatMapRenderCallback(string base64img) { var activity = Xamarin.Forms.Forms.Context as Activity; activity?.RunOnUiThread(async() => { try { var imageBytes = HeatMapHelper.GetHeatMapImageBytes(base64img); Bitmap decodedByte = await BitmapFactory.DecodeByteArrayAsync(imageBytes, 0, imageBytes.Length); _img.SetImageBitmap(decodedByte); _img.Visibility = Android.Views.ViewStates.Visible; } catch (System.Exception e) { System.Diagnostics.Debug.WriteLine($"Error decoding heat map image: {e}"); } }); }
private async void BaseWebViewScriptNotify(object sender, NotifyEventArgs e) { try { var bmp = new BitmapImage(); var imageBytes = HeatMapHelper.GetHeatMapImageBytes(e.Value); using (var ms = new Windows.Storage.Streams.InMemoryRandomAccessStream()) { using (var writer = new Windows.Storage.Streams.DataWriter(ms.GetOutputStreamAt(0))) { writer.WriteBytes(imageBytes); await writer.StoreAsync(); } await bmp.SetSourceAsync(ms); } imageBytes = null; _img.Source = bmp; _img.Visibility = Windows.UI.Xaml.Visibility.Visible; } catch { } }