wp8开发基础(2)-webbrowser之js通讯交互(ObjectForScripting,ScriptNotify)
2013-12-19 16:46
435 查看
使用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" onclick="fun_op_c()" value="调用c#的内容"><br>
运行点"调用c#的内容",即可弹出,看debug信息,代表通讯交互成功
希望对你有用处
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" onclick="fun_op_c()" value="调用c#的内容"><br>
运行点"调用c#的内容",即可弹出,看debug信息,代表通讯交互成功
希望对你有用处
相关文章推荐
- iOS 开发 Object-C和JavaScript交互详解之OC与JS交互在WKWebView中使用
- cocos2d-js 开发基础练习代码(2)——使用事件管理器创建用户交互以及cocos精灵帧动画的js使用
- IOS 开发 OC(Object_C)与前端页面JS(JavaScript)交互整理(一)
- iOS开发 - Swift使用JavaScriptCore与JS交互
- 使用CoffeeScript+Browserify开发cocos2d-js游戏的体验
- 黑马程序员——零基础学习iOS开发——12 Object-C block、protocol
- iOS开发使用WebViewJavascriptBridge实现OC与JS交互
- iOS开发之JSPatch的基础用法
- android web混合开发 混合开发实例——JS与Java的交互
- AutoCAD ObjectARX(VC)开发基础与实例教程2014版光盘镜像
- 利用Java实现串口全双工通讯-Java基础-Java-编程开发
- 【iOS开发】UIWebView与JavaScript(JS) 回调交互
- Android开发中WebView与原生JS的数据交互详解
- JS基础知识之Object
- Ios开发之 -- js和ios的交互
- 安卓混合开发实例——JS与Java的交互
- REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信
- (Unity3d)Vuforia开发基础五-模型交互
- iOS 开发中app与js 交互问题
- IOS 开发OC 与JS 交互 WebviewJavaScriptBridge 的简单实用(二)