I've objective-C codes like this:
#import "QHArticle.h"
#import <WebKit/WebKit.h>
-(instancetype)init
{
self = [super init];
if (self)
{
_helperWebView = [[WKWebView alloc] init];
NSString *path = [[NSBundle mainBundle] pathForResource:@"Article" ofType:@"js"];
content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:content injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
[_helperWebView.configuration.userContentController addUserScript:wkUScript];
[_helperWebView reload];
}
return self;
}
- (NSString *)callJSMethod:(NSString *)method
{
__block NSString *resultString = nil;
__block BOOL finished = NO;
[_helperWebView evaluateJavaScript:method completionHandler:^(id result, NSError *error) {
if (error == nil) {
if (result != nil) {
resultString = [NSString stringWithFormat:@"%@", result];
}
} else {
NSLog(@"evaluateJavaScript error : %@", error.localizedDescription);
}
finished = YES;
}];
while (!finished)
{
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
return resultString;
}
But i got blank screen and error: 2021-01-18 16:56:57.117808+0700 Q-UII[5400:419080] evaluateJavaScript error : A JavaScript exception occurred. Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
Please help.