iOS UIWebView中Objective-C與Javascript的深層交互(一)

        最近項目中有用到OC與JS的交互,剛開始時候覺得只用一個函數就能搞定交互,即 stringByEvaluatingJavaScriptFromString 後邊爲JS代碼轉化的字符串,後來隨着項目的內容的增多,逐漸發現功能有些捉襟見肘,網上搜索了一些方法,解決了問題,先總結如下文,借鑑下經驗,方便記憶的同時,也希望能稍微幫助到一點別人

      正常的WebView的代理方法就不再多做贅述,iOS7之前沒有開放webkit,好多東西做起來比較麻煩,現在簡單了好多,一般在返回bool值的代理函數中做判斷該頁面是不是可以加載,加載完成後有時候需要做一些操作,比如我們這次的監聽登錄按鈕,然後調用本地方法,這個時候之前的方法可能就不能滿足需求了。廢話不多說了,說正事

 OC調用JS方法

    需要先加入javascript的依賴庫 JavaScriptCore.framework ,然後導入頭文件#import <JavaScriptCore/JavaScriptCore.h> 。此時就能做操作了,

    首先,創建JSContext的對象,通過webview獲取到jscontext

    JSContext *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];  //獲取jscontext對象,上下文


    NSString *alertStr=@"alert('測試的代碼')";  //準備執行的js代碼 

    [context evaluateScript:alertStr];//通過oc方法調用js的alert  調用後既執行js的方法

此時會彈出一個類似與iOS種alertview的對話框,若是想調用其他的JS方法,準備好js的代碼,然後利用上下文調用該方法就實現了OC調用JS功能的實現。 如實則完成了IOS中OObjective-C對Javascript方法的調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章