我試圖重現從這個項目的結果:https://github.com/victorchee/JavaScriptCoreDemo從JavaScript調用本地斯威夫特功能在WebView中
也就是說我要再現第二個按鈕它調用從斯威夫特本機的功能。
是我遇到的問題是下面的代碼:
jsContext = webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as? JSContext
我得到的休耕錯誤:
2016-10-07 18:39:01.664 JSCore-Test-01[17603:689101] *** WebKit discarded an uncaught exception in the webView:didFinishLoadForFrame: delegate: <NSUnknownKeyException> [<WebView 0x6080001208c0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key documentView.
什麼是Mac OS X中的等價的iOS碼?
我花了幾個小時研究這個,並試圖解決它!使用'webView.mainFrame.javaScriptContext'確實會消除錯誤,但它不會像'documentView.webView.mainFrame.javaScriptContext'爲iOS應用程序那樣加載'JSContext *'。這裏是我的Mac OS X仍然使用'documentView'作爲例外的說明https://github.com/moon47usaco/JSCore-Test-03/tree/master – Moon47
而不是訪問主框架上下文,嘗試使用這個委託方法:https://developer.apple.com/reference/webkit/webframeloaddelegate/1501462-webview –
允許'jsContext = webView.valueForKeyPath(「documentView.webView.mainFrame.javaScriptContext」)as? JSContext'沒有例外,但仍然沒有按鈕交互。試着用'context.objectForKeyedSubscript(「show」)?. callWithArguments([「Swift call」])''沒有賦值到'jsContext',但是按鈕仍然沒有任何作用。爲什麼這在OS X中更加困難?謝謝你的建議。 – Moon47