вернуть значение в быстром javascript оценить - PullRequest
0 голосов
/ 10 марта 2020

Пожалуйста, я пытаюсь заставить мой iOS WKWebview работать как мой android WebView. Возникает ли проблема с возвратом значения при вызове iOS javascript обработчиков сообщений в swift?

У меня ниже javascript и этот быстрый javascript обработчик webkit.messageHandlers.isOnline.postMessage(null), который я хотел бы получить true || false всякий раз, когда он вызывается.

function isLoggedChecker(){
    try{
        var navtiveOnline = (Interface("android") ? androidWebkit.isOnline() : Interface("ios") ? webkit.messageHandlers.isOnline.postMessage(null) : false);
        if(config.isOnline() && navtiveOnline){
            // EVERYTHING IS ONLINE
        }else if(!config.isOnline() && navtiveOnline){
            //LOGOUT NATIVE
        }else if(config.isOnline() && !navtiveOnline){
            // LOGIN NATIVE
        }else{
            //NO ONE IS ONLINE
        }
    } catch(err) {
        DEBUG && console.log('Error (isLoggedChecker)', err);}
    }
}
$(window).on("load", isLoggedChecker);

// У меня есть функция swift, как показано ниже, пожалуйста, как мне вернуть значение isOnline при вызове моего javascript isLoggedChecker?

 func isOnline() -> Bool {
    if user.key != "" && user.key.prefix(5) == "guest" {
        return false
    }else if user.key != "" && user.status {
        return true
    }
    return false
}

// Мой пример кода в android javascript class

    @JavascriptInterface
    public boolean isOnline(){
       boolean  key_prefix = user.getKey().substring(0, 5).equals("guest");
        if(user.getKey() != null && key_prefix){
            return false;
        }else if(user.getKey() != null && user.getStatus()){
            return true;
        }
        return false;
    }
...