protected override void BuildRenderTree(RenderTreeBuilder builder) { //This component must be rendered once! if (_isInitialized) { return; } builder.OpenElement(0, "script"); builder.AddContent(1, @" window.BlazorXamarinRuntimeCheck = function () { if (window.contextBridge == null || window.contextBridge == undefined) { return false; } return true; }; "); builder.CloseElement(); //Add server side remote to client remote debugging builder.OpenElement(0, "script"); builder.AddContent(1, ContextBridgeHelper.GetInjectableJavascript(false).Replace("%_contextBridgeURI%", BlazorService.GetContextBridgeURI())); builder.CloseElement(); _isInitialized = true; }
public override void DidFinishNavigation(WKWebView webView, WKNavigation navigation) { var content = ContextBridgeHelper.GetInjectableJavascript(); var handler = _renderer.GetJavascriptEvaluationResultHandler(); _renderer.Control.EvaluateJavaScript((NSString)content, handler); }
public void OnNavigated() { if (blazorAppLaunched) { switch (Device.RuntimePlatform) { case Device.iOS: //WKWebview is wrapped over UIWebview. WkWebview has it's own delegate for this. break; default: string content = ContextBridgeHelper.GetInjectableJavascript(); Eval(content); break; } } }
protected override void BuildRenderTree(RenderTreeBuilder builder) { //This component must be rendered once! //Even if the javascript script is not re-renderer if the component is called twice, it should be already available in the DOM if (_isInitialized) { return; } builder.OpenElement(0, "script"); builder.AddAttribute(1, "type", "text/javascript"); builder.AddMarkupContent(1, ContextBridgeHelper.GetBlazorXamarinJavascript() + ContextBridgeHelper.GetContextBridgeJavascript().Replace("%_contextBridgeURI%", BlazorMobileService.GetContextBridgeURI())); builder.CloseElement(); _isInitialized = true; }
protected override void BuildRenderTree(RenderTreeBuilder builder) { //This component must be rendered once! //If the component is disposed and then re-rendered, then something is wrong with the current project configuration if (_isInitialized) { return; } builder.OpenElement(0, "script"); builder.AddAttribute(1, "type", "text/javascript"); builder.AddContent(1, ContextBridgeHelper.GetBlazorXamarinJavascript() + ContextBridgeHelper.GetContextBridgeJavascript().Replace("%_contextBridgeURI%", BlazorMobileService.GetContextBridgeURI())); builder.CloseElement(); _isInitialized = true; }
protected override void BuildRenderTree(RenderTreeBuilder builder) { //This component must be rendered once! //If the component is disposed and then re-rendered, then something is wrong with the current project configuration if (_isInitialized) { return; } if (ContextHelper.IsBlazorMobile()) { builder.OpenElement(0, "script"); builder.AddContent(1, @" window.BlazorXamarinRuntimeCheck = function () { if (window.contextBridge == null || window.contextBridge == undefined) { return false; } return true; }; "); builder.CloseElement(); //Add server side remote to client remote debugging builder.OpenElement(0, "script"); builder.AddContent(1, ContextBridgeHelper.GetInjectableJavascript(false).Replace("%_contextBridgeURI%", BlazorMobileService.GetContextBridgeURI())); builder.CloseElement(); } else if (ContextHelper.IsElectronNET()) { //Add electronNET helpers builder.OpenElement(0, "script"); builder.AddContent(1, ContextBridgeHelper.GetElectronNETJavascript()); builder.CloseElement(); } _isInitialized = true; }
internal static MemoryStream ManageIndexPageRendering(MemoryStream originalContent) { string indexContent = Encoding.UTF8.GetString(originalContent.ToArray()); originalContent.Dispose(); //Do user logic var userDelegate = GetDefaultPageResultDelegate(); if (userDelegate != null) { indexContent = userDelegate(indexContent); } //Do BlazorContextBridgeLogic //Get content to INJECT string injectableContent = ContextBridgeHelper.GetInjectableJavascript(false).Replace("%_contextBridgeURI%", GetContextBridgeURI()); indexContent = indexContent.Replace("</blazorXamarin>", "</blazorXamarin>\r\n<script type=\"application/javascript\">" + injectableContent + "\r\n</script>\r\n\r\n"); return(new MemoryStream(Encoding.UTF8.GetBytes(indexContent))); }