参考上一篇文章 基于js的开发wp8界面的猜想知道可以使用
js的window.external.notify调用c#
c#可以用InvokeScript调用js方法
class="Apple-tab-span" style="white-space:pre">如果返回值类型是字符串类型可以直接返回
因此我们可以再次使用WebBrowser控件做我们的js引擎(如果可以吧v8引擎移植最好啦),而且我们新建控件不用把控件放入UI一样有效
基于以上的猜想进行实验 新建一个wp类库
代码如下
public class Class1
{
WebBrowser Browser =
new WebBrowser();
public Class1()
{
Browser.IsScriptEnabled =
true;
// 在此处添加 URL
Browser.NavigateToString(
"<script>function a() { window.external.notify('a'); }</script>");
Browser.ScriptNotify += Browser_ScriptNotify;
Browser.LoadCompleted += Browser_LoadCompleted;
}
void Browser_LoadCompleted(
object sender, System.Windows.Navigation.NavigationEventArgs e)
{
var va= Browser.InvokeScript(
"a");
}
void Browser_ScriptNotify(
object sender, NotifyEventArgs e)
{
throw new NotImplementedException();
}
}
然后 调用这个类库实例化后 发现可以进事件: Browser_ScriptNotify
既然可以就开始优化 让每次调用都方便点 优化方案加载中......