Saltar al contenido

¿Puedo ejecutar JavaScript dentro del código Swift?

Si hallas alguna incompatibilidad con tu código o proyecto, recuerda probar siempre en un entorno de testing antes subir el código al proyecto final.

Última prueba con Swift 5.1

Aquí hay un ejemplo que puede ejecutar en Playground para comenzar:

import JavaScriptCore

let jsSource = "var testFunct = function(message)  return "Test Message: " + message;"

var context = JSContext()
context?.evaluateScript(jsSource)

let testFunction = context?.objectForKeyedSubscript("testFunct")
let result = testFunction?.call(withArguments: ["the message"])

result sería Test Message: the message.

También puede ejecutar código JavaScript dentro de un WKWebView llamando a evaluar Java Script (_: Finalización del controlador:).

También puede ejecutar JavaScript dentro de UIWebView llamando string​Evaluando​Java​Script(de:​), pero tenga en cuenta que ese método ha sido obsoleto y está marcado como iOS 2.0–12.0.

Utilizando marco JavaScriptCore incluir código JavaScript en código Swift.

La clase con la que más te enfrentarás es JSContexto. Esta clase es el entorno real (contexto) que ejecuta su código JavaScript.

Todos los valores en JSContextoestán Objetos JSValue, ya que la clase JSValue representa el tipo de datos de cualquier valor de JavaScript. Eso significa que si accede a una variable de JavaScript y a una función de JavaScript desde Swift, ambas se consideran objetos JSValue.

Le recomiendo encarecidamente que lea la documentación oficial sobre el marco JavaScriptCore.

import JavaScriptCore


var jsContext = JSContext()


// Specify the path to the jssource.js file.
if let jsSourcePath = Bundle.main.path(forResource: "jssource", ofType: "js") 
    do 
        // Load its contents to a String variable.
        let jsSourceContents = try String(contentsOfFile: jsSourcePath)

        // Add the Javascript code that currently exists in the jsSourceContents to the Javascript Runtime through the jsContext object.
        self.jsContext.evaluateScript(jsSourceContents)
    
    catch 
        print(error.localizedDescription)
    
  

más detalles consulte este tutorial

Recuerda algo, que tienes la capacidad de agregar una reseña si encontraste tu atolladero a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *