1,加载本地html文件
using System.IO;
using Microsoft.Xna.Framework;
StreamReader reader =
new
StreamReader(
TitleContainer.OpenStream(
"html/wp7wiki.html"));
Browser.NavigateToString(reader.ReadToEnd());
2,默认不开script,用isscriptenabled开启
XAML
<
phone
:
WebBrowser
x
:
Name
="Browser"
IsScriptEnabled
="True"
/>
C#
Browser.IsScriptEnabled =
true;
3, 在你的app和script 之间传递信息
若要把数据从app传到page,可以简单的调用.InvokeScript(). 他有两个重载函数,无参和有参:
public Object InvokeScript( string scriptName )
public Object InvokeScript(
string scriptName,
params Object[] args ) s
criptName是脚本的函数名,args是函数的参数列表,如:
string returnValue = (
string)Browser.InvokeScript(
"getText",
"http://jeffblankenburg.com",
"rocks",
"awesomely");
若相反,即从script传数据到app, 首先script要触发一个scriptnotify事件:window.external.Notify(
http://jeffblankenburg.com);(以传url为例)然后在app中设置一个notify event handle:.ScriptNotify.
void Browser_ScriptNotify(
object sender,
NotifyEventArgs e) { Browser.Navigate(
new
Uri(e.Value,
UriKind.Absolute)); }
//NotifyEventArgs.Value是script传递的数据
4,可以使用进度条来表示正在加载页面
XAML
<
ProgressBar
Foreground
="Orange"
x
:
Name
="ProgBar"
Visibility
="Collapsed"
IsIndeterminate
="True"
Height
="4"
HorizontalAlignment
="Left"
Margin
="10,66,0,0"
VerticalAlignment
="Top"
Width
="460" />
C#
void Browser_Navigating(
object sender,
NavigatingEventArgs e) { ProgBar.Visibility =
Visibility.Visible; }
void Browser_Navigated(
object sender, System.Windows.Navigation.
NavigationEventArgs e) { ProgBar.Visibility =
Visibility.Collapsed; }