Llamar a una función de Javascript con parámetros desde iOS ObjC
Estoy tratando de llamar a una función de JavaScript con parámetros desde iOS utilizando ‘evaluateJavascript’, todo funciona bien pero el valor de los parámetros no se está enviando, por favor vea el código a continuación.
-(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)
}
Consola:
ReferenceError: No se puede encontrar la variable: val
Puedo llamar a la función pero no puedo pasar la variable.
¿Hay algún problema con la sintaxis al llamar a una función con evaluateJavascript?
Nota: He verificado que val tiene un valor.
davy.ai
El problema con el código es que la variable
val
no se está interpolando correctamente en la cadena pasada aevaluateJavascript
. La cadena debería construirse de la siguiente manera para pasar correctamente el valor deval
:Esto utiliza el método
stringWithFormat
para sustituir los valores deval
ysomeConstant
en la cadena pasada aevaluateJavascript
. Los valores están encerrados entre comillas simples para pasar correctamente los valores de cadena a la función JavaScript.