I have this javascript code below that i want run in swift to extract html but i got the following error: Cannot find ValueCallback in scope.
view.evaluateJavascript(
"(function() { return ('<html>'+document.getElementById('html').innerHTML+'</html>'); })();",
new ValueCallback<String>() {
@Override
public void onReceiveValue(String html) {
print(html);
}
}
);
evaluateJavascript function has a different signature
/* @abstract Evaluates the given JavaScript string.
@param javaScriptString The JavaScript string to evaluate.
@param completionHandler A block to invoke when script evaluation completes or fails.
@discussion The completionHandler is passed the result of the script evaluation or an error.
Calling this method is equivalent to calling `evaluateJavaScript:inFrame:inContentWorld:completionHandler:` with:
- A `frame` value of `nil` to represent the main frame
- A `contentWorld` value of `WKContentWorld.pageWorld`
*/
open func evaluateJavaScript(_ javaScriptString: String, completionHandler: ((Any?, Error?) -> Void)? = nil)
You'd need to change your code to
view.evaluateJavascript("(function() { return ('<html>'+document.getElementById('html').innerHTML+'</html>'); })();") { value, error in
print(value)
)