1

我正在尝试在 PhoneGap (Cordova) Windows Phone 8 应用程序中从 C# 调用 JavaScript 代码。按照这个接受的答案线程的步骤:如何从 C# 调用 JavaScript - Cordova/PhoneGap

我应该能够访问 Javascript 部分中的方法或执行硬编码的 JS 代码。但是,我遇到了这个错误:

“System.IO.FileNotFoundException”类型的异常发生在 mscorlib.ni.dll 中,并且在托管/本机边界之前未处理
System.Windows.ni.dll 中出现“System.UnauthorizedAccessException”类型的第一次机会异常
An System.Windows.ni.dll 中发生“System.UnauthorizedAccessException”类型的异常,但未在用户代码中处理
在 mscorlib.ni.dll 中发生“System.Reflection.TargetInvocationException”类型的第一次机会异常
“System”类型的异常
.Reflection.TargetInvocationException ' 发生在 mscorlib.ni.dll 中,并且在托管/本机边界之前未处理
错误:无法 InvokeMethodNamed :: pluginMethod on Object :: 示例

我的代码是(是一个原生插件):

namespace WPCordovaClassLib.Cordova.Commands
{
    public class Example : Cordova.Commands.BaseCommand
    {
        public void pluginMethod(string options)
        {
          //The error is caused in this line
          PGWebBrowserHandler.getInstance().webView.CordovaBrowser
              .InvokeScript("eval", 
                            new string[] { "alert('Is it running?!');" });
        }
    }
}

PGWebBrowserHandler是前面提到的线程中给出的单例类的名称,以便可以CordovaBrowser从任何 C# 类访问。

错误(FileNotFoundException, UnauthorizedAccessExceptionTargetInvocationException)不是由InvokeScript()方法引起的,是以前通过获取webView,不崩溃但调试它引起的,很多是方法引起的UnauthorizedAccessException.

我希望我的解释清楚。我一直在 Google 中搜索它,但在任何地方都没有找到解决方案或解决方法。有人知道这些问题的原因吗?invokeScript()MainPage.cs也导致异常调用方法。

4

1 回答 1

0

试试这个代码:

Dispatcher.BeginInvoke(
            () =>
            {
                PGWebBrowserHandler.getInstance().webView.CordovaBrowser
                    .InvokeScript("eval",
                      new string[] { "alert('Is it running?!');" });
            });
于 2014-03-21T01:59:39.567 回答