我试图在PhoneGap (Cordova) Windows Phone 8应用程序中从c#调用JavaScript代码。如何从c#调用JavaScript - Cordova/PhoneGap
我应该能够访问Javascript部分的方法或执行硬编码的JS代码。但是,我遇到了这个错误:
System.IO类型的异常。在mscorlib.ni.dll中发生FileNotFoundException',并且在托管/本机边界之前未处理
上调用emethodnamed:: pluginMethod失败
类型为"System"的第一次机会异常。UnauthorizedAccessException'发生在System.Windows.ni.dll
类型为"System"的异常。unauthorizedaccesssexception '发生在System.Windows.ni.dll中,但未在用户代码中处理
类型为"System.Reflection"的第一次偶然异常。TargetInvocationException'在mscorlib.ni.dll中发生
System.Reflection类型的异常。TargetInvocationException'在mscorlib.ni.dll中发生,并且在托管/本机边界之前未处理
ProcessCommand中的ERROR:: Exception被调用的目标抛出。
在Object:: Example
我的代码是(是一个本地插件):
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
是前面提到的线程中给出的单例类的名称,以便从任何c#类访问CordovaBrowser
。
错误(FileNotFoundException,
, UnauthorizedAccessException
, TargetInvocationException
)不是由InvokeScript()
方法引起的,是之前获得webView,
但调试时没有崩溃引起的,很多方法都导致了UnauthorizedAccessException.
MainPage.cs
调用invokeScript()
方法也会导致异常。
试试下面的代码:
Dispatcher.BeginInvoke(
() =>
{
PGWebBrowserHandler.getInstance().webView.CordovaBrowser
.InvokeScript("eval",
new string[] { "alert('Is it running?!');" });
});