UIWebView JSContext相關問題

近期和同事的項目中使用到了UIWebview的JSContext相關的特性javascript

因爲開始從ios7適配,能夠用javascriptcore.framework,和h5的通訊也相對之前簡單了不少,不須要定義那麼多的url shcemajava

具體javascript和native經過javascriptcore互相調用的例子能夠看這個ios

http://justsee.iteye.com/blog/2036713git

 

這裏遇到一個tricky問題github

JSContext這個對象會常常變化,在WebView開始load到finish load會變化,在finishload以後在頁面內href連接到另外一個頁面也會變化web

及時的獲取到當前的jscontext對象很是關鍵api

JSContext *ctx = [webView valueForKeyPath:@」documentView.webView.mainFrame.javaScriptContext」];

 上面這種方式獲取的時候,不能在context變化後及時知道app

 

mac底下有個api,每次create新的contenxt就會有回調出來工具

具體能夠看這個開源工具:https://github.com/TomSwift/UIWebView-TS_JavaScriptContext這個開源工具裏面有私有api調用,若是要是上傳appstore要注意刪除其中的幾行代碼@implementation NSObject (magic) - (void) webView: (id) unused didCreateJavaScriptContext: (JSContext*) ctx forFrame: (id) frame { // ... } @end
相關文章
相關標籤/搜索