atitit.js 与c# java交互html5化的原理与总结.doc
atitit.js 与c# java交互html5化的原理与总结.doc
2.1.1. --------nativeswing的实现
2
1. 实现html5化界面的要解决的策略
1.1. Js交互
Firefox与Chrome也提供了external对象,比如,他们都默认的实现了opensearch的两个外部方法:
AddSearchProvider IsSearchProviderInstalled
Chrome下,能够在控制台输入window.external看到。
Firefox默认提供的外部方法稍稍多一些,也能够能够通过firebug看到。
作者:: 老哇的爪子 Attilax 艾龙。 EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
1.2. 动态參数个数
Java的是obj[] 对象数组了。默认支持动态參数个数
C#的使用obj[]就不行兰..子能预保留
function sendNSCommand()
{
//arguments
var s=(arguments);
var argsArray = Array.prototype.slice.call(arguments);
window.external.sendNSCommand(argsArray[0],argsArray[1],argsArray[2],argsArray[4],argsArray[5],argsArray[6],argsArray[7]);
alert(window.external);
}
//供JS调用
public void sendNSCommand(Object message, Object message2, Object message3, Object message4, Object message5, Object message6, Object message7)
{
// Object[] objs = (Object[])message;
Console.WriteLine(message);
}
1.3. 事件监听
本文提到的事件。能够分为三种类型,各自是表单提交、超链接跳转、JavaScript 直接调用 BrowserFunction。当中 JavaScript 调用 BrowserFunction 因为无需刷新页面,能够直接运行,因此无需对其进行特殊监听。然而,Web 上最为常见的表单提交和超链接跳转,都须要刷新页面,而刷新页面时。则无法调用 BrowserFunction。那么怎样对这些事件进行监听成为文章的一大难点。
Browser 提供了一个事件监听机制,能够为 Browser 加入地址变更监听器。也就是 LocationListener。这个接口有两个方法
2. sendNSCommand
onclick="sendNSCommand('play','百度一下');"/
Window.external.对象就是我们后台的一个对象。。
假设未定义,就是null
2.0.1. --------nativeswing的实现
sendNSCommand('play',video);
3. 注冊js 事件后台函数
ScriptEvent.ScriptEventDic.Add("play", delegate(IList<object> args) {
MessageBox.Show((string)args[0]);
return null;
});
4. 后台c#
// 改动webbrowser的属性使c#能够调用js方法:
webbrowser.ObjectForScripting = new ScriptEvent();
namespace ClassLibrary1.com.attilax.ui
{
[System.Runtime.InteropServices.ComVisible(true)]
public class ScriptEvent
{
public static Dictionary<String, javaEventHandler> ScriptEventDic = new Dictionary<string, javaEventHandler>();
public delegate Object javaEventHandler(IList<Object> args);//第一步:定义托付类型
//供JS调用
public void sendNSCommand(Object message, Object message2, Object message3, Object message4, Object message5, Object message6, Object message7)
{
// Object[] objs = (Object[])message;
Console.WriteLine(message);
String meth =(String) message;
IList<Object> li = new List<Object>();
li.Add(message2);
li.Add(message3); li.Add(message4); li.Add(message5); li.Add(message6); li.Add(message7);
javaEventHandler hdl = ScriptEventDic[meth];
hdl(li);
}
}
}
5. 參考
Winform控件WebBrowser与JS脚本交互 - 冰 鱼 - 博客园
atitit.javascript调用java in swt attilax 总结 - attilax的专栏 - 博客频道 - CSDN.NET.html
WPF的WebBrowser 里面使用JavaScript调用外部方法的决解方法 - Lonely Bandit - 博客园.html
[转]JS调用WPF代码 运行了QueryInterface调用 请求提供COM可见的托管类 JavaScript调WinFrom_最黑de四季_新浪博客.html
Winform控件WebBrowser与JS脚本交互 - 冰 鱼 - 博客园.html
atitit.js 与c# java交互html5化的原理与总结.doc的更多相关文章
- atitit.js 与c# java交互html5化的原理与总结.doc
atitit.js 与c# java交互html5化的原理与总结.doc 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参数个数1 1.3. 事件监听2 2. sen ...
- Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7
Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception processVob7 1. 1. javascript异常处理机制 ...
- Atitit.js javascript异常处理机制与java异常的转换.js exception process Voae
Atitit.js javascript异常处理机制与java异常的转换.js exception processVoae 1. 1. javascript异常处理机制 1 2. 2. Web前后台异 ...
- atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97
atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参 ...
- Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换
Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换 { "@type":"java.lang.Runti ...
- Atitit.跨语言异常转换机制 java c# php到js的异常转换
Atitit.跨语言异常转换机制 java c# php到js的异常转换 1. bizEx 直接抓取,然后js catchEX1 2. Chkec runtimeEx1 3. Other异常..J ...
- atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js
atitit.复合变量,也就是类似$$a的变量的原理与实现 java c#.net php js 1.1. 复合变量,也就是类似$$a的变量,它会进行两次的解释. 1 1.2. 数据库里面的复合变量1 ...
- Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持
Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持 1. 设置 document.domain为一致 推荐1 2. Apache 反向代理 推荐1 ...
- Atitit.js javascript的rpc框架选型
Atitit.js javascript的rpc框架选型 1. Dwr1 2. 使用AJAXRPC1 2.2. 数据类型映射表1 3. json-rpc轻量级远程调用协议介绍及使用2 3.1. 2.3 ...
随机推荐
- 玩转HTML5移动页面(动效篇)
为一名前端,在拿到设计稿时你有两种选择: 快速输出静态页面 加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有志向的前端,当然是选2啦!可是需求时间又很短很短,怎么办呢? 这次就来谈谈一些 ...
- BZOJ 2565 最长双回文串(回文自动机)
题意 给一个长度为N的字符串S.对于一个字符串AB,如果A和B都是回文串,那么称AB是一个双回文串.求问S最长双回文子串的长度?N <= 100000 题解 正反双向构造回文自动机,得到某一个点 ...
- CF451E Devu and Flowers (组合数学+容斥)
题目大意:给你$n$个箱子,每个箱子里有$a_{i}$个花,你最多取$s$个花,求所有取花的方案,$n<=20$,$s<=1e14$,$a_{i}<=1e12$ 容斥入门题目 把取花 ...
- reactor模式与java nio
Reactor是由Schmidt, Douglas C提出的一种模式,在高并发server实现中广泛採用. 改模式採用事件驱动方式,当事件出现时,后调用对应的事件处理代码(Event Handl ...
- java里的一些特别值得注意的地方
return 语句的作用:1.返回值 2.结束某个方法的执行. 局部变量必需要初始化,全局变量系统会默认初始值: 整型数赋默认值为0. 浮点数赋默认值为0.0,boolean赋默认值为false. c ...
- Linux线程相互排斥量--进程共享属性
多线程中.在相互排斥量和 读写锁的 属性中.都有一个叫 进程共享属性 . 对于相互排斥量,查询和设置这个属性的方法为: pthread_mutexattr_getpshared pthread_mut ...
- 【试水CAS-4.0.3】第02节_CAS服务端登录页个性化
完整版见https://jadyer.github.io/2015/07/16/sso-cas-login-diy/ /** * @see ------------------------------ ...
- nyoj--46--最少乘法次数(数学+技巧)
最少乘法次数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2=2 ...
- BZOJ 1336&1337最小圆覆盖
思路: http://blog.csdn.net/commonc/article/details/52291822 (照着算法步骤写--) 已知三点共圆 求圆心的时候 就设一下圆心坐标(x,y) 解个 ...
- Oracle中根据表明获取对应表触发器名称
Select object_name From user_objects a left join all_triggers b on a.object_Name = b.trigger_name wh ...