iOS OC與H5網頁互動之OC傳值給JS(WKWebView)
阿新 • • 發佈:2018-12-31
1.OC傳值給JS的程式碼:
// 頁面載入完成之後呼叫 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{ [SVProgressHUDdismiss]; NSString * jsStr = [NSString stringWithFormat:@"payResult('%@')",@"true"]; [self.webView evaluateJavaScript:jsStrcompletionHandler:^(id_Nullable result, NSError * _Nullable error) { NSLog(@"==%@----%@",result, error); }]; }
OC給JS傳值需要再網頁載入完成之後進行,當初我傳值給JS的是使用者的登入狀態,JS需要拿到使用者的登入狀態去進行收藏的操作。
2.JS接收OC傳值的程式碼:
function payResult(str){
if(str == ‘ture’){
alert(‘登入’);
}
}
OC程式碼中的payResult()方法是JS中的方法,裡面的引數是傳遞給JS的資料。
注意:JS能接收到OC傳遞的資料,但卻不能進行輸出,需要進行判斷,看接收到的資料是不是某個資料。當初在做這塊的時候iOS這邊列印的一直是null,寫JS的哥們也一直說沒有接收到資料,(他說我的程式碼有問題,我說他的程式碼有問題),最後才發現JS接收到的資料不能輸出列印,只能進行判斷。
再次提醒:這種OC給JS傳引數的方式實際就是OC呼叫JS方法,傳的值是JS方法的一個引數。
君凱商聯網-iOS-字唐名僧