一般开发wp8应用我们都用xaml,但是xaml里面的各种效果都不如用html+css+js实现起来方便
所以就有了用js来开发wp8 界面的想法
后端调用js的方法为WebBrowser 控件里面的 InvokeScript方法 里面有2个参数 第一个为方法名 第二个为方法的参数(非必填)
class="Apple-tab-span" style="white-space:pre"> ps:方法名即页面存在js的方法 ,参数就是要调用的js的参数
前段调用c#的方法为js里面的 window.external.notify方法 只有一个参数
ps:监听 WebBrowser 的事件ScriptNotify ,值在 NotifyEventArgs对象下的 Value
既然是c#和js交互那么参照网络数据包 必须要有一个中间件来通讯
不知道大家有没有除了$符号,还有没有其他符号做全局的变量
1 Object.prototype.extend = function () {
2 var arg = arguments[0];
3 var that = this;
4 for (var i in that) {
5 that[i] = arg[i] || that[i];
6 }
7 return that;
8 };
9 (function (a) {
10 function jquery() {
11 /*调用后端的方法
12 funName 后端的方法名
13 args 参数
14 callBack 回掉方法*/
15 this.Invoke = function (funName, args, callBack) {
16 var arg = arguments;
17 var _middleWare = {
18 funName: '',
19 args: '',
20 callBack: ''
21 }.extend({
22 funName: arg[0],
23 args: arg[1],
24 callBack: arg[2]
25 });
26 window.external.notify(JSON.stringify(_middleWare))
27 }
28 };
29 a["$"] = a["$"] || new jquery();
30 })(window)
在接收后台接收参数用Json.NET的类库来json序列化
先声明一个静态类
1然后在页面绑定上去
// 构造函数在页面上面写js为
$.Invoke('', '', 'show');这样基本功能就实现啦 ,就可以实现前后端的互调啦
因为前面写了 ScriptAction(middleWare.callback, new string[] { "2" }); 传的参数为2 所以提示为2
大家有什么意见请尽情吐槽