如何在Objective C中使用wkWebView使用参数执行Javascript?

时间:2017-01-04 07:11:15

标签: javascript objective-c wkwebview readiumjs

我目前正在尝试使用:

 NSString* arg = [NSString stringWithFormat:@"ReadiumSDK.reader.openSpineItemElementCfi(%@,%@,)", val1,val2]; 
 [self executeJavaScript:arg completionHandler:nil];

但这会引发错误。

1 个答案:

答案 0 :(得分:0)

我从WkWebView:

始终将参数传递给javascript函数

一个问题可能是您的参数需要在单引号内,并且最后还有一个额外的参数:" ReadiumSDK.reader.openSpineItemElementCfi('%@',' ;%@')"

关键是调用该函数的方式与浏览器中的开发人员控制台完全相同:

我在下面的Chrome开发者工具示例中输入:SomeFunction(' stringParameter')

NSString *someParameter = @"stringParameter";
NSString *javascript = [NSString stringWithFormat:@"SomeFunction('%@')", someParameter];
[wkWebView evaluateJavaScript:javascript completionHandler:^(NSString *result, NSError *error) {
    if(error != nil) {
        NSLog(@"SomeFunction Error: %@",error);
        return;
    }

    NSLog(@" SomeFunction Success");
}];