在Cordova插件中从Objective C执行Javascript

在Cordova插件中从Objective C执行Javascript,javascript,ios,objective-c,cordova,Javascript,Ios,Objective C,Cordova,我正在使用cordova 6.5.0,我正在创建一个插件,我想从中执行一些javascript 我在论坛中发现,从我的webview中,我可以使用stringByEvaluatingJavascriptFromString,但它不能被识别为有效的方法 例如,在AppDelegate.m中,为了进行测试,我尝试了以下方法: [self.viewController.webView stringByEvaluatingJavascriptFromString]:@"alert('Test')"];

我正在使用cordova 6.5.0,我正在创建一个插件,我想从中执行一些javascript

我在论坛中发现,从我的webview中,我可以使用stringByEvaluatingJavascriptFromString,但它不能被识别为有效的方法

例如,在AppDelegate.m中,为了进行测试,我尝试了以下方法:

[self.viewController.webView stringByEvaluatingJavascriptFromString]:@"alert('Test')"];
但是我收到消息“UIView”的No visible@inteface声明选择器“stringByEvaluatingJavascriptFromString”

我已经创建了一个名为Utils.m的类对象

@implementation Utils: NSObject

id webview;
id delegate;


-(void) initialise:(id) wbview Delegate:(id) dlg{

    webview = wbview;
    delegate = dlg;

}

-(void) executeJavascript:(NSString *)str{

    [delegate runInBackground:^{

        [delegate stringByEvaluatingJavaScriptFromString:@"alert('test')"];


    }];

}
然后从插件初始化的cordova插件

- (void)pluginInitialize{


    /* Start pjsua app thread */
//    [NSThread detachNewThreadSelector:@selector(pjsuaStart) toTarget:self withObject:nil];

    utils = [[Utils alloc] init ];
    [utils initialise:self.webView Delegate:self.commandDelegate];

    [utils executeJavascript:@"alert('Test');"];

}
尽管出于某种原因,stringByEvaluatingJavascriptFromString被认为是一种有效的方法,但应用程序会崩溃

有什么建议吗

谢谢 Symeon

使用evalJs而不是stringByEvaluatingJavaScriptFromString:

[delegate evalJs:@"alert('test')"];