利用WKWebView實現js與OC交互注意事項


最近在寫一些關於wkwebview的一些代碼,發現了幾點心得,記錄一下。

1.js調用OC

我是利用wkwebview進行的開發實現,主要代碼有三部分

1.向config注入OC對象

 [config.userContentController addScriptMessageHandler:self name:@"YHModel" ];

2.js中書寫調用方法:

window.webkit.messageHandlers.YHModel.postMessage({
			height: $("html").height()
});

3.完成OC回調方法

//js > OC
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{
    if ([message.name isEqualToString:@"YHModel"]) {
        CGFloat height = [[message.body valueForKey:@"height"] floatValue];
    }
}

2.OC調用js

同樣是利用wkwebview中的代碼,實現起來分為兩部分:

1.OC中代碼

 [webView evaluateJavaScript:@"compeleteFlag=true" completionHandler:nil];

2.js中代碼

var compeleteFlag = false;
var timeintervalFunction = setInterval(function() {
var widthValue = $("#progross").width();
$("#progross").width(widthValue + space);
    if(widthValue >= $("#progrossPart").width() || compeleteFlag) {     
          $("#progross").width($("#progrossPart").width());
          clearInterval(timeintervalFunction);
          $("#progrossPart").fadeOut();
       }
}, 1000);

應當注意的是:

1.js回調OC時,應判斷所獲取的值是不是真實存在。
2.OC調用js代碼時應該保證,js代碼處於全局位置或者能夠確定代碼所處位置,正確認識其層級關系。

   
   
   

友情鏈接:

技術博客        簡書主頁


免責聲明!

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



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