C#InvokeScript给出错误80020006

时间:2013-07-04 09:08:37

标签: c# cordova windows-phone-7.1

我有一段代码如下。

webBrowser.IsScriptEnabled = true;
webBrowser.InvokeScript("eval", "alert('hey')");

它给出了An unknown error has occurred. Error: 80020006。你能指导如何纠正这个错误。

2 个答案:

答案 0 :(得分:2)

Windows Phone中没有内置浏览器window.alert,但您可以按如下方式绑定一个以调用WebBrowser.ScriptNotify

//inside the page
window.alert = function (__msg) { window.external.notify(' + __msg + '); };


// in your C# code
this.webBrowser.ScriptNotify += new EventHandler<NotifyEventArgs>(Browser_ScriptNotify);
void Browser_ScriptNotify(object sender, NotifyEventArgs e)
{
     MessageBox.Show(e.Value);
}

//later 
this.CordovaView.Browser.IsScriptEnabled = true;
this.CordovaView.Browser.InvokeScript("alert", "ok");

在Cordova上,还有一个可以通过

插入的通知插件
window.alert = navigator.notification.alert;

确保在config.xml中启用Notification Plugin

  <feature name="Notification">
      <param name="wp-package" value="Notification"/>
  </feature>

答案 1 :(得分:2)

这是由竞争条件引起的。我们需要做的是

  

this.CordovaView.Browser.LoadCompleted + = Browser_LoadCompleted;

然后

  void Browser_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
    {
        this.CordovaView.Browser.IsScriptEnabled = true;
        this.CordovaView.CordovaBrowser.IsScriptEnabled = true;
        this.CordovaView.Browser.InvokeScript("setPushToken", push_uri);
    }