将变量值从Swift更改为javascript
我使用将变量值从Swift更改为javascript,javascript,ios,swift,wkwebview,Javascript,Ios,Swift,Wkwebview,我使用WKWebview运行应用程序。我知道我可以通过postMessage将数据从JS传递到Swift。 但我如何才能实现相反的目标呢?我需要Swift将数据提供给Javascript。我可以看到一些使用evaluateJavaScript的示例,但无法理解这是如何工作的。 这是一个示例/代码: Javascript var dataString = ""; function getDataFromSwift(data){ dataString = data } 我需要上述函
WKWebview
运行应用程序。我知道我可以通过postMessage
将数据从JS传递到Swift
。
但我如何才能实现相反的目标呢?我需要Swift将数据提供给Javascript
。我可以看到一些使用evaluateJavaScript
的示例,但无法理解这是如何工作的。
这是一个示例/代码:
Javascript
var dataString = "";
function getDataFromSwift(data){
dataString = data
}
我需要上述函数与Swift
进行“通信”,并更改var“dataString”的值。
我注意到,如果运行evaluateJavaScript
,则不会将“dataString”值更改为JS
Swift 3
let callMethod = String(format: "getDataFromSwift('\("some text")')")
webView.evaluateJavaScript(callMethod, completionHandler: { (obj, error) -> Void in })
如果您使用的是webview委托方法,则需要将值作为参数发送,然后可以通过委托方法parameter.Shobhakar获取,如果您是指func userContentController(uUserContentController:WKUserContentController,didReceive message:WKScriptMessage){}是的,我从那里尝试。我知道调用该方法是因为在我的测试中,我可以打印或从函数中获取返回,但我需要更改JS值。您想从swift代码中更改JS值,是吗?没错。这只是一个示例代码。我的观点是,我想从Swift对JS本机值进行真正的更改。您是否尝试过以下代码:您是否使用webview委托方法,您需要将值作为参数发送,然后您可以通过委托方法parameter.Shobhakar获取,如果您指的是func userContentController(uUserContentController:WKUserContentController,didReceive消息:WKScriptMessage){}是的,我从那里开始尝试。我知道正在调用该方法,因为在我的测试中,我可以打印或从函数中获取返回值,但我需要更改JS值。您想从swift代码中更改JS值,是吗?没错。这只是一个示例代码。我的观点是,我想从swift中对JS本机值进行真正的更改。您尝试过以下代码吗: