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;
        }
示例#2
0
        public override void DidFinishNavigation(WKWebView webView, WKNavigation navigation)
        {
            var content = ContextBridgeHelper.GetInjectableJavascript();
            var handler = _renderer.GetJavascriptEvaluationResultHandler();

            _renderer.Control.EvaluateJavaScript((NSString)content, handler);
        }
示例#3
0
        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)));
        }