private async Task GenerateSpan(Span addSpan, HtmlNode htmlNode) { try { //Check if span contains iframe HtmlAttribute iframeNode = htmlNode.Attributes.Where(x => x.Name.Contains("iframe")).FirstOrDefault(); if (iframeNode != null) { Debug.WriteLine("Adding span node with iframe."); grid_item_webview webView = new grid_item_webview(); webView.item_status.Text = "Webview not loaded,\nopen in browser."; InlineUIContainer iui = new InlineUIContainer(); iui.Child = webView; addSpan.Inlines.Add(iui); //addSpan.Inlines.Add(new LineBreak()); } else { await AddNodes(addSpan, htmlNode, false); } } catch { } }
private void GenerateWebview(Span addSpan, HtmlNode htmlNode) { try { //Check if webview limit reached if (vWebViewAdded == vWebViewLimit) { grid_item_webview webView = new grid_item_webview(); webView.item_status.Text = "Webview not loaded,\nlimit has been reached."; InlineUIContainer iui = new InlineUIContainer(); iui.Child = webView; addSpan.Inlines.Add(iui); //addSpan.Inlines.Add(new LineBreak()); return; } //Check if media loading is allowed if (!AppVariables.LoadMedia) { grid_item_webview webView = new grid_item_webview(); webView.item_status.Text = "Webview not loaded,\nnetwork is not available."; InlineUIContainer iui = new InlineUIContainer(); iui.Child = webView; addSpan.Inlines.Add(iui); //addSpan.Inlines.Add(new LineBreak()); return; } //Check if device is low on memory if (AVFunctions.DevMemoryAvailableMB() < 200) { grid_item_webview webView = new grid_item_webview(); webView.item_status.Text = "Webview not loaded,\ndevice is low on memory."; InlineUIContainer iui = new InlineUIContainer(); iui.Child = webView; addSpan.Inlines.Add(iui); //addSpan.Inlines.Add(new LineBreak()); return; } //Check if low bandwidth mode is enabled if ((bool)AppVariables.ApplicationSettings["LowBandwidthMode"]) { grid_item_image img = new grid_item_image(); img.item_status.Text = "Webview not loaded,\nlow bandwidth mode."; img.IsHitTestVisible = false; InlineUIContainer iui = new InlineUIContainer(); iui.Child = img; addSpan.Inlines.Add(iui); //addSpan.Inlines.Add(new LineBreak()); return; } //Create item webview string WebLink = htmlNode.Attributes["src"].Value; if (!string.IsNullOrWhiteSpace(WebLink)) { Debug.WriteLine("Opening webview: " + WebLink); grid_item_webview webView = new grid_item_webview(); webView.item_source.Source = new Uri(WebLink); webView.item_source.ContainsFullScreenElementChanged += webview_Full_ContainsFullScreenElementChanged; webView.item_source.NewWindowRequested += webview_Full_NewWindowRequested; InlineUIContainer iui = new InlineUIContainer(); iui.Child = webView; addSpan.Inlines.Add(iui); //addSpan.Inlines.Add(new LineBreak()); //Update the webview count vWebViewAdded++; } } catch { } }