Deploying Native Apps
window.webkit.messageHandlers.<message_name>.postMessage("Hello, native world!");window.webkit.messageHandlers.exampleMessage.postMessage();
window.webkit.messageHandlers.exampleMessageWithArgument.postMessage("Hello, native world!");class JSMessageHandler: NSObject, WKScriptMessageHandler {
struct MessageNames {
static let exampleMessage = "exampleMessage"
static let exampleMessageWithArgument = "exampleMessageWithArgument"
}
var exampleAction: (() -> Void)?
var exampleActionWithArgument:((String) -> Void)?
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
switch message.name {
case MessageNames.exampleMessage:
exampleAction?()
case MessageNames.exampleMessageWithArgument:
if let argument = message.body as? String {
exampleActionWithArgument?(argument)
} else {
print("Wrong argument type for message \(message.name) : \(message.body)")
}
default:
print("Unknown message: \(message.name)")
}
}Last updated