WKWebview evaluateJavascript ne fonctionne pas, génère une erreur
Je suis en train d'appeler un existant de la fonction à partir d'un site distant dans un WKWebview:
function addtext (text) {
jQuery("#webviewtest").html(text);
}
Avec:
[self.WebView evaluateJavaScript:@"addtext(\"This is a text from app\");" completionHandler:^(id Result, NSError * error) {
NSLog(@"Error -> %@", error);
}];
Mais c'est de lancer une erreur:
Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo=0x170c788c0 {NSLocalizedDescription=A JavaScript exception occurred}
C'est si simple! Je suis doit manquer quelque chose de vraiment stupide!
source d'informationauteur Rogers Sampaio
Vous devez vous connecter pour publier un commentaire.
Trouvé une solution, c'était simple comme je m'y attendais, j'étais en ajoutant le javascript avant l'affichage complet de charger le contenu (avant le Dom Prêt). Donc j'ai juste eu à déplacer mon code pour le délégué de la méthode ci-dessous:
J'espère que cela aide quelqu'un.
J'ai trouvé que le problème a été causé par le
webView:didFinishNavigation:
être appelée avant que le contenu de la page a été chargé. Je pense que le site est en utilisant angularjs.J'ai introduit un manuel de retard, ce qui semblait d le truc pour moi :
et fait de mon appel ici:
Idéalement, la meilleure solution serait d'avoir un port d'écoute pousser un événement pour angularjs page "prêt", mais je ne suis pas sûr que cela est possible dans wkwebview.