在Cordova插件中从Objective C执行Javascript
我正在使用cordova 6.5.0,我正在创建一个插件,我想从中执行一些javascript 我在论坛中发现,从我的webview中,我可以使用stringByEvaluatingJavascriptFromString,但它不能被识别为有效的方法 例如,在AppDelegate.m中,为了进行测试,我尝试了以下方法:在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')"];
[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')"];