UIWebView JSContext相關問題


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

由於開始從ios7適配,可以用javascriptcore.framework,和h5的通信也相對以前簡單了很多,不需要定義那么多的url shcema

具體javascript和native通過javascriptcore互相調用的例子可以看這個

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

 

這里遇到一個tricky問題

JSContext這個對象會經常變化,在WebView開始load到finish load會變化,在finishload之后在頁面內href鏈接到另一個頁面也會變化

及時的獲取到當前的jscontext對象非常關鍵

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

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

 

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

@implementation NSObject (magic) - (void) webView: (id) unused didCreateJavaScriptContext: (JSContext*) ctx forFrame: (id) frame { // ... } @end
具體可以看這個開源工具:
https://github.com/TomSwift/UIWebView-TS_JavaScriptContext
這個開源工具里面有私有api調用,如果要是上傳appstore要注意刪除其中的幾行代碼



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM