type tag script que nuestro llamar llamada invoca forma externo donde desde debe código como colocarse codigo body archivo javascript swift signalr

tag - la llamada al código javascript debe colocarse en



¿Puedo ejecutar JavaScript dentro del código Swift? (2)

Necesito incluir código JavaScript en el código Swift para poder llamar a un chat de signalR, ¿es posible? Si no, ¿puedo convertirlo?

sendmessage es un botón.

$(function () { // Declare a proxy to reference the hub. var chat = $.connection.chatHub; // Create a function that the hub can call to broadcast messages. chat.client.broadcastMessage = function (name, message) { // some code }; // Start the connection. $.connection.hub.start().done(function () { $(''#sendmessage'').click(function () { // Call the Send method on the hub. chat.server.send(''name'', ''message''); }); }); });

y el código de signalr es:

public void Send(string name, string message) { // Call the broadcastMessage method to update clients. Clients.All.broadcastMessage(name, message); }

Actualización # 1:

Cambié un poco la pregunta para que no sea confuso por @MartinR


El uso de JavaScriptCore framework incluye código JavaScript en código Swift.

La clase con la que tratarás más, es JSContext . Esta clase es el entorno real (contexto) que ejecuta su código JavaScript.

Todos los valores en JSContext son 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 una función de JavaScript desde Swift, se considera que ambos son objetos JSValue.

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

import JavaScriptCore // 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 consultar este tutorial.


Puede ejecutar JavaScript dentro de Swift!

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 una WKWebView comandos WKWebView para evaluar Java Script (_: completed Handler WKWebView .

También puede ejecutar JavaScript dentro de un UIWebView llamando a la cadena al evaluar Java Script (de UIWebView , pero tenga en cuenta que ese método ha quedado en desuso y está marcado como iOS 2.0–12.0.