Пожалуйста, я пытаюсь заставить мой 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;
}