示例#1
0
 private void ShowErrorMessage(string msg)
 {
     msg = msg.Replace("\"", "\\\"");
     this.ExecuteDeferredScriptFunction("showErrorMessage", new string[]
     {
         ReactViewRender.Quote(msg)
     });
 }
示例#2
0
 public InternalWebView(ReactViewRender owner, bool preloadBrowser)
 {
     this.owner = owner;
     base.IsSecurityDisabled = true;
     if (preloadBrowser)
     {
         base.InitializeBrowser();
     }
 }
示例#3
0
        private void InternalLoadComponent()
        {
            string text = ReactViewRender.NormalizeUrl(this.component.JavascriptSource);

            string[] array = text.Split(new string[]
            {
                "/"
            }, StringSplitOptions.None);
            int           num  = (array.Length >= 2) ? 2 : 1;
            string        str  = this.ToFullUrl(string.Join("/", array.Take(array.Length - num))) + "/";
            List <string> list = new List <string>
            {
                ReactViewRender.Quote(str),
                ReactViewRender.Array(new string[]
                {
                    ReactViewRender.Quote(this.component.NativeObjectName),
                    ReactViewRender.Quote(this.component.Name),
                    ReactViewRender.Quote(text)
                })
            };

            if (this.DefaultStyleSheet != null)
            {
                list.Add(ReactViewRender.Quote(ReactViewRender.NormalizeUrl(this.ToFullUrl(this.DefaultStyleSheet.ToString()))));
            }
            else
            {
                list.Add("null");
            }
            list.Add(ReactViewRender.AsBoolean(this.enableDebugMode));
            list.Add(ReactViewRender.Quote(this.cacheInvalidationTimestamp));
            this.webView.RegisterJavascriptObject(this.component.NativeObjectName, this.component.CreateNativeObject(), null, null, false);
            IViewModule[] array2 = this.Plugins;
            if (array2 != null && array2.Length != 0)
            {
                IViewModule[] array3 = (from p in this.Plugins
                                        where !string.IsNullOrEmpty(p.NativeObjectName)
                                        select p).ToArray <IViewModule>();
                list.Add(ReactViewRender.Array(from m in array3
                                               select ReactViewRender.Array(new string[]
                {
                    ReactViewRender.Quote(m.Name),
                    ReactViewRender.Quote(m.NativeObjectName)
                })));
                foreach (IViewModule viewModule in array3)
                {
                    this.webView.RegisterJavascriptObject(viewModule.NativeObjectName, viewModule.CreateNativeObject(), null, null, false);
                }
                list.Add(ReactViewRender.Object(from m in this.Plugins
                                                select new KeyValuePair <string, string>(ReactViewRender.Quote(m.Name), ReactViewRender.Quote(ReactViewRender.NormalizeUrl(this.ToFullUrl(m.JavascriptSource))))));
            }
            this.ExecuteDeferredScriptFunction("load", list.ToArray());
            this.componentLoaded = true;
        }
示例#4
0
        private static ReactViewRender CreateReactViewInstance()
        {
            ReactViewRender reactViewRender = ReactView.cachedView;

            ReactView.cachedView = null;
            new Thread(() => {
                if (ReactView.cachedView == null)
                {
                    ReactView.cachedView = new ReactViewRender(true);
                }
            }).Start();
            return(reactViewRender ?? new ReactViewRender(true));
        }
示例#5
0
 private static string Array(IEnumerable <string> elements)
 {
     return(ReactViewRender.Array(elements.ToArray <string>()));
 }