使用来自 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];
}
然而,根据参数值的来源,您应该确保没有代码注入是可能的!
我正在尝试使用 '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];
}
然而,根据参数值的来源,您应该确保没有代码注入是可能的!