使用来自 iOS ObjC 的参数调用 Javascript 函数

Call Javascript function with parameters from iOS ObjC

我正在尝试使用 'evaluateJavascript' 使用 iOS 的参数调用 Javascript 函数,一切正常,但未发送参数值,请参阅下面的代码

-(void) callJavascriptFunc: (NSString*)val{
  //Example val is "Apple" string
  [self.webview evaluateJavascript:@"exampleFuncName(val, '\(someConstant)')" completionHandler: nil];
}

Javascript:

exampleFuncName(value1: string, value2: string){
   console.log("values == ", value1 + " , " + value2)
}

控制台: ReferenceError:找不到变量:val

我可以调用函数,但无法传递变量。 使用 evaluateJavascript

调用函数时是否存在语法问题

注意:我检查过 val 有一个值。

您需要构建一个包含传递参数的字符串并将其用作 evaluateJavascript 的参数。 像这样:

-(void) callJavascriptFunc: (NSString*)val{
    NSString* script = [NSString stringWithFormat:@"exampleFuncName('%@', '\(someConstant)')", val];
    [self.webview evaluateJavascript:script completionHandler: nil];
}

然而,根据参数值的来源,您应该确保没有代码注入是可能的!