es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que la variable val no se está interpolando correctamente en la cadena pasada a evaluateJavascript. La cadena debería construirse de la siguiente manera para pasar correctamente el valor de val:

    [self.webview evaluateJavascript:[NSString stringWithFormat:@"exampleFuncName('%@', '%@')", val, someConstant] completionHandler:nil];
    

    Esto utiliza el método stringWithFormat para sustituir los valores de val y someConstant en la cadena pasada a evaluateJavascript. Los valores están encerrados entre comillas simples para pasar correctamente los valores de cadena a la función JavaScript.

Comments are closed.