Posts

Post not yet marked as solved
4 Replies
1.2k Views
I have the following lines of code in our app: @objc convenience init(webView: WKWebView, delegate: SomeDelegate, navigationDelegate: WKNavigationDelegate) { self.webView = webView self.webView.makeInspectable() self.webView.navigationDelegate = navigationDelegate self.webView.uiDelegate = self self.webView.configuration.suppressesIncrementalRendering = true self.webView.configuration.userContentController.add(weakSelf ?? self, name: "handlerOne") self.webView.configuration.userContentController.add(weakSelf ?? self, name: "handlerTwo") injectUserScripts() // Injects WKUserScripts into the webView.configuration.userContentController } My JS script looks as follows: (function() { addEventListener('mousedown', function() { window.webkit.messageHandlers.handlerOne.postMessage('WKUserScriptMouseDown'); }, true); })(); if (MyApp.getProperty("os") != null) { window.webkit.messageHandlers.handlerTwo.postMessage(url); } else { console.log(url); // non-mobile browser (for testing) } However I keep seeing an error in my Safari debugger: TypeError: undefined is not an object (evaluating 'window.webkit.messageHandlers.handlerOne') TypeError: undefined is not an object (evaluating 'window.webkit.messageHandlers.handlerTwo')
Posted Last updated
.