本文整理汇总了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);
}
示例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();
}
示例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;
}
示例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));
}
示例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?'))");
}
}
}));
}
示例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()");
}
示例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();
}