当前位置: 首页>>代码示例>>C#>>正文


C# JSObject.Bind方法代码示例

本文整理汇总了C#中JSObject.Bind方法的典型用法代码示例。如果您正苦于以下问题:C# JSObject.Bind方法的具体用法?C# JSObject.Bind怎么用?C# JSObject.Bind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JSObject的用法示例。


在下文中一共展示了JSObject.Bind方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Initialize

 private void Initialize()
 {
     _js = _webView.CreateGlobalJavascriptObject("sharpAngieBridge");
     _js.Bind("initialize", false, (x, y) => _bridge.Initialize(string.Empty));
     _js.Bind("setProperty", false, SetViewModelProperty);
     _js.Bind("invokeMethod", false, InvokeViewModelMethod);
 }
开发者ID:BaamStudios,项目名称:SharpAngie,代码行数:7,代码来源:WebViewBridge.cs

示例2: JavascriptSessionInjector

        internal JavascriptSessionInjector(IWebView iWebView, IJSOBuilder iGlobalBuilder, IJavascriptListener iJavascriptListener)
        {
            _IWebView = iWebView;
            _GlobalBuilder = iGlobalBuilder;
            _IJavascriptListener = iJavascriptListener;


            if (_IJavascriptListener != null)
            {
                _Listener = _GlobalBuilder.CreateJSO();
                _Listener.Bind("TrackChanges", false, (o, e) => _IJavascriptListener.OnJavaScriptObjectChanges((JSObject)e.Arguments[0], (string)e.Arguments[1], e.Arguments[2]));
                _Listener.Bind("TrackCollectionChanges", false, (o, e) => _IJavascriptListener.OnJavaScriptCollectionChanges((JSObject)e.Arguments[0], (JSValue[])e.Arguments[1], (JSValue[])e.Arguments[2], (JSValue[])e.Arguments[3]));
           }
            else
                _Listener = new JSObject();
        }
开发者ID:skyaxl,项目名称:MVVM-for-awesomium,代码行数:16,代码来源:JavascriptSessionInjector.cs

示例3: GetMapper

        private JSObject GetMapper(IJavascriptMapper iMapperListener)
        {
            _IJavascriptMapper.Enqueue(iMapperListener);
    
            if (_Mapper != null)
                return _Mapper;

            _Mapper = _GlobalBuilder.CreateJSO();

             _Mapper.Bind("Register", false, (o, e) =>
            {
                if (_PullNextMapper)
                { 
                    _Current = _IJavascriptMapper.Dequeue();
                    _PullNextMapper = false;
                }

                if (_Current == null)
                    return;

                int count = e.Arguments.Length;
                JSObject registered = (JSObject)e.Arguments[0];

                switch (count)
                {
                    case 1:
                        _Current.RegisterFirst(registered);
                        break;

                    case 3:
                        _Current.RegisterMapping((JSObject)e.Arguments[1], (string)e.Arguments[2], registered);
                        break;

                    case 4:
                        _Current.RegisterCollectionMapping((JSObject)e.Arguments[1],
                            (string)e.Arguments[2], (int)e.Arguments[3], registered);
                        break;
                }
             });

            _Mapper.Bind("End", false, (o, e) =>
                {
                    if (_PullNextMapper)
                        _Current = _IJavascriptMapper.Dequeue();

                    if (_Current!=null)
                        _Current.End((JSObject)e.Arguments[0]);
                    _Current = null;
                    _PullNextMapper = true;
                });

            return _Mapper;
        }
开发者ID:skyaxl,项目名称:MVVM-for-awesomium,代码行数:53,代码来源:JavascriptSessionInjector.cs

示例4: wv_ProcessCreated

        void wv_ProcessCreated(object sender, EventArgs e_)
        {
            Func<Boolean, JavascriptMethodEventArgs, Boolean> linearTrack = (track, e) =>
            {
                if (e.Arguments.Length < 2) return false;
                JSValue joint = e.Arguments[0];
                JSValue dir = e.Arguments[1];
                if (!(joint.IsString && dir.IsString)) return false;

                LinearGestureDetector.Direction eDir =
                    (LinearGestureDetector.Direction)
                    Enum.Parse(typeof(LinearGestureDetector.Direction), dir.ToString(), true);

                try
                {
                    if (track) linearDetect.AddDirection(StringToJoint(e.Arguments[0]), eDir);
                    else linearDetect.RemoveDirection(StringToJoint(e.Arguments[0]), eDir);
                }
                catch (Exception) { return false; }
                return true;
            };

            kinectGlobalObj = wv.CreateGlobalJavascriptObject("KinectHelper");

            kinectGlobalObj.Bind("userIsFacing", true, (s, e) => e.Result = Listening);

            kinectGlobalObj.Bind("linearTrack", true, (s, e) => e.Result = linearTrack(true, e));
            kinectGlobalObj.Bind("linearUntrack", false, (s, e) => e.Result = linearTrack(false, e));
        }
开发者ID:N0NamedGuy,项目名称:KinectTV,代码行数:29,代码来源:KinectHelper.cs

示例5: BindJavascriptEvents

        private void BindJavascriptEvents(JSObject jsObject)
        {
            jsObject.Bind("quitConfirm", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript QuitButton pressed");
                this.Battlelog.ExecuteJavascript("showDialog(askToQuitDialog('Are you sure you want to quit?', 'Do you want to quit?'))");
            }));

            jsObject.Bind("minimize", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript Minimize pressed");
                this.WindowState = WindowState.Minimized;
            }));

            jsObject.Bind("quitWrapper", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Quit requested from Javascript call");
                this.Close();
            }));

            jsObject.Bind("clearCache", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript ClearCache pressed");
                this.clearCache = true;
                this.Battlelog.ExecuteJavascript("showDialog(askToQuitDialog('The cache will be cleared on restart', 'Do you wish to quit Battlelogium now?'))");
            }));

            jsObject.Bind("editSettings", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript EditSettings pressed");
                using (var configEditor = new BattlelogiumConfigEditor(config))
                {
                    var result = configEditor.ShowDialog();
                    if (result == System.Windows.Forms.DialogResult.OK)
                    {
                        this.Battlelog.ExecuteJavascript("showDialog(askToQuitDialog('Settings will be saved on restart', 'Do you wish to quit Battlelogium now?'))");
                    }

                }
            }));
        }
开发者ID:ChipRune,项目名称:Battlelogium,代码行数:41,代码来源:BattlelogiumMain.xaml.cs

示例6: BindJavascriptEvents

        private void BindJavascriptEvents(JSObject jsObject)
        {
            Utilities.Log("BattlelogiumMain.BindJavascriptEvents Called");
            jsObject.Bind("quitConfirm", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript QuitButton pressed");
                this.Battlelog.ExecuteJavascript(JSDialog.ShowJavascriptDialog(new QuitConfirmDialog("Are you sure you want to quit?", "Do you want to quit?")));
            }));
            Utilities.Log("Bound wrapper.quitConfirm()");

            jsObject.Bind("minimize", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript Minimize pressed");
                this.WindowState = WindowState.Minimized;
            }));
            Utilities.Log("Bound wrapper.minimize()");

            jsObject.Bind("quitWrapper", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Quit requested from Javascript call");
                this.Close();
            }));
            Utilities.Log("Bound wrapper.quitWrapper()");

            jsObject.Bind("clearCache", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript ClearCache pressed");
                this.Battlelog.WebSession.ClearCache();
                this.Battlelog.WebSession.ClearCookies();
                this.Battlelog.Reload(true);
            }));
            Utilities.Log("Bound wrapper.clearCache()");

            jsObject.Bind("editSettings", false, new JavascriptMethodEventHandler(delegate
            {
                Utilities.Log("Javascript EditSettings pressed");
                using (var configEditor = new BattlelogiumConfigEditor(config))
                {
                    var result = configEditor.ShowDialog();
                    if (result == System.Windows.Forms.DialogResult.OK)
                    {
                        this.Battlelog.ExecuteJavascript(JSDialog.ShowJavascriptDialog(new QuitConfirmDialog("Settings will be saved on restart", "Do you wish to quit Battlelogium now?"), false));
                    }

                }
            }));
            Utilities.Log("Bound wrapper.editSettings()");
        }
开发者ID:CJ2311,项目名称:Battlelogium,代码行数:48,代码来源:BattlelogiumMain.xaml.cs

示例7: Run

        // --------------------------------------------------
        // Run
        // --------------------------------------------------
        public void Run(String scriptFile)
        {
            // Setup our configuration
            WebConfig config = new WebConfig() {
                LogLevel   = LogLevel.None,
                UserScript = File.ReadAllText("assets/UserScript.js"),
                RemoteDebuggingPort = 8001,
            };
            // Initialize the Awesomium WebCore
            WebCore.Initialize(config);
            // Make an in-memory session for working with multiple instances
            WebSession session = WebCore.CreateWebSession(new WebPreferences() {});
            // Add the scrape datasource to the session
            session.AddDataSource("scrape", new DirectoryDataSource("assets"));
            // Create our browser
            this.browser = new Browser(session);
            // Create the bridge
            Bridge = browser.CreateGlobalJavascriptObject("Scrape");
            // Make the back function
            Bridge.Bind("back", true, (o,e) => Command_GoBack(""));
            // Make the click function
            Bridge.Bind("click", true, (o,e) => Click(e.Arguments[0]));
            // Make a function for writing data
            Bridge.Bind("dumptext", true, (o,e) => DumpText(e.Arguments[0], e.Arguments[1]));
            // Make the include function (with no return value)
            Bridge.Bind("include", true, (o,e)=>Include(e.Arguments[0]));
            // Make the loadtext function
            Bridge.Bind("loadtext", true, (o,e) => e.Result = LoadText(e.Arguments[0]));
            // Make the log function
            Bridge.Bind("log", true, (o,e) =>log.Info(e.Arguments[0]));
            // Make the screenshot function
            Bridge.Bind("screenshot", true, (o,e) => Command_Screenshot(""));
            // Add a user agent interceptor
            WebCore.ResourceInterceptor = new ResourceInterceptor();
            // If a scriptFile was passed, then setup a line for that
            if(scriptFile != null) lines.Enqueue("scrape " + scriptFile);

            Thread repl = new Thread(() => {
                try {
                    while(Running) {
                        // Get a line of input from the user
                        String line = Readline.ReadLine("> ");
                        // Handle CTRL-D
                        if(line == null) Quit();
                        else {
                            // Trim whitespace
                            line = line.Trim();
                            // Add the line to the history
                            History.AddHistory(line);
                            // Add this line to the queue
                            lines.Enqueue(line);
                        }
                    }
                } catch(ThreadInterruptedException) {
                }
            });
            repl.Start();

            // The input loop
            while(Running) {
                Thread.Sleep(200);
                WebCore.Update();
                if(lines.Count > 0) ProcessLine(lines.Dequeue());
            }

            // Force quite the repl thread
            // FIXME: TODO: Change this to interrupt
            repl.Abort();
            // WebCore isn't smart enough to clean itself up
            WebCore.Shutdown();
        }
开发者ID:voidrayco,项目名称:monoscrape,代码行数:74,代码来源:Program.cs


注:本文中的JSObject.Bind方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。