2016-05-25 15 views
13

Ich muss JavaScript-Code in Swift-Code enthalten, um einen signalR-Chat aufrufen zu können, ist das möglich? Wenn nicht, kann ich es konvertieren?Kann ich JavaScript in Swift-Code ausführen?

sendmessage ist ein Knopf.

$(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'); 
     }); 
    }); 
}); 

und der signalr Code ist:

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

Update # 1:

geänderte Frage ein wenig, so dass es pro @MartinR nicht verwirrend ist

Antwort

27

Sie können laufen, JavaScript in Swift! Hier

ist ein Beispiel für den Einstieg:

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.callWithArguments(["the message"]) 

resultTest Message: the message wäre.

Sie können auch innerhalb eines UIWebView JavaScript-Code ausführen, indem string​By​Evaluating​Java​Script(from:​) oder in einem WKWebView Aufruf Aufruf evaluate​Java​Script(_:​completion​Handler:​)

+0

, wo ich diesen Code schreiben müssen? Kannst du das als ein vollständiges Beispiel geben? –

+0

Wissen Sie, wie ich die JS-Datei in Swift importieren könnte? – JmJ

+0

Sie können etwas tun wie: 'let jsSource = String.StringWithContentsOfFile (Pfad +"/jsFile.js ")' – Daniel

Verwandte Themen