1. 程式人生 > >iOS OC與H5網頁互動之OC傳值給JS(WKWebView)

iOS OC與H5網頁互動之OC傳值給JS(WKWebView)

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-字唐名僧