wp8开发基础(2)-webbrowser之js通讯交互(ObjectForScripting,ScriptNotify)

使用wp8的webbrowser想实现如下功能

1:能用c#调用包含html中的js

2:能用html中的js调用c#中方法


注意:

一开始找WebBrowser的js通讯交互,看到blog
地址:http://blog.csdn.net/zzzzzzzert/article/details/7787481
但在wp8中始终不好使

原来:

普通C#的WebBrowser是:System.Windows.Controls.WebBrowser
是设置:ObjectForScripting
MSDN:http://msdn.microsoft.com/zh-cn/library/system.windows.controls.webbrowser.objectforscripting(v=vs.110).aspx

而wp8的WebBrowser是:Microsoft.Phone.Controls.WebBrowser
是设置:ScriptNotify
MSDN:http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/microsoft.phone.controls.webbrowser.scriptnotify(v=vs.105).aspx


弄明白这个就好办了


步骤如下:

1:能用c#调用包含html中的js

原理:通过InvokeScript方法

MSDN:http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/ff402855(v=vs.105).aspx

1.1:xaml中WebBrowser设置属性:LoadCompleted="webBrowserPanel1_success"

1.2:在方法中

        private void webBrowserPanel1_success(object sender, System.Windows.Navigation.NavigationEventArgs e)
        {
            string[] arrPara = new string[1];
            arrPara[0] = "this is form c#";
            try
            {
                webBrowserPanel1.InvokeScript("fun_c",arrPara);
            }
            catch (Exception ex)
            {
                Msg("出错:"+ex.Message);
            }
        }

1.3:在html中script中

        function fun_c(args) {
            alert(args);
        }


加载完成后,就可以显示内容


2:能用html中的js调用c#中方法

原理:通过ScriptNotify方法


1.1:xaml中WebBrowser设置属性:ScriptNotify="webBrowserPanel1_ScriptNotify"

1.2:在方法中

        private void webBrowserPanel1_ScriptNotify(object sender, NotifyEventArgs e)
        {
            String sValue = e.Value;
            Debug.WriteLine(sValue);
            Msg(sValue);
        }
注意:Msg是封装:MessageBox.Show

1.3:在html中


        function fun_op_c() {
            try {
                window.external.notify("需要弹出的警告!");
            } catch (e) {
                alert("出错"+e.message);
            }
        }

<input type="button" οnclick="fun_op_c()" value="调用c#的内容"><br>

运行点"调用c#的内容",即可弹出,看debug信息,代表通讯交互成功


希望对你有用处

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值