@flipflap, I know this is not WebView based but I hope it also helps you to execute the JavaScript you need
import objc_util
class JavaScriptVM(object):
def __init__(self):
self._framework = objc_util.load_framework("JavaScriptCore")
self._JSContext = objc_util.ObjCClass("JSContext")
self._JSVirtualMachine = objc_util.ObjCClass("JSVirtualMachine")
self.context = None
self.javascript_vm = None
self._prepare_vm()
def _prepare_vm(self):
context = self._JSContext.new()
self.javascript_vm = self._JSVirtualMachine.new()
self.context = context.initWithVirtualMachine_(self.javascript_vm)
def evaluate_script(self, script_code: str):
if self.context is not None:
if self.javascript_vm is not None:
return self.context.evaluateScript(script_code)
code = """function test(a, b){
return a + b;
}
test(1+2, 3)+3"""
vm = JavaScriptVM()
r = vm.evaluate_script(code)
print(r)