Existe-t-il un moyen d'obtenir un rappel à l'objectif-c lorsqu'un certain événement a été détecté dans un UIWebView? Est-ce que Javascript peut envoyer un rappel à Objective-C?Javascript dans le rappel UIWebView à C/Objective-C
Répondre
Mise à jour - n'utilisez plus UIWebView. Utilisez WKWebView, ou mieux encore (si cela correspond à vos besoins et vous construisez pour iOS 9), un contrôleur Safari View.
Mais si vous devez utiliser UIWebView, dans votre délégué UIWebView, fournir une implémentation pour webView:shouldStartLoadWithRequest:navigationType:
Dans votre fichier HTML ou Javascript, ajouter des fonctions qui envoient des URL à un système personnalisé (pour des raisons de lisibilité, le système personnalisé ISN n'est pas nécessaire). Toutes les URL envoyées seront transmises à votre implémentation de la méthode Objective-C, et vous pourrez ensuite faire ce que vous voulez.
Juste pour illustrer la solution par "bpapa" avec le code réel:
AVERTISSEMENT: code non testé
Mettre en œuvre cette méthode dans le délégué du UIWebView ...
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ([[[inRequest URL] scheme] isEqualToString:@"callback"]) {
// Do something interesting...
return NO;
}
return YES;
}
.. .puis mettre un lien dans le webwieb comme ceci:
<a href="callback:whatever">Click me</a>
Et il devrait activer votre code de rappel. De toute évidence, vous pouvez le déclencher avec un javascript au lieu d'un lien simple.
- 1. Javascript est dans UIWebView
- 2. return value javascript UIWebView
- 3. UIWebView et JavaScript
- 4. javascript question rappel
- 5. javascript événements et rappel
- 6. jquery, javascript et le calendrier rappel
- 7. fonction de rappel JavaScript
- 8. erreurs JavaScript dans un Detecting UIWebView
- 9. fonction JavaScript comme rappel
- 10. fonction de rappel JavaScript
- 11. JavaScript est-il exécutable dans UIWebView?
- 12. Création d'un rappel JavaScript dans un iframe
- 13. UIWebView n'évaluant pas javascript correctement
- 14. faire javascript rappel-ish fonction
- 15. trouver le mot dans UIwebview
- 16. Détecter le téléchargement dans UIWebView
- 17. Masquer le clavier dans UIWebView
- 18. UIWebView affiche le site Web stocké localement (HTML, images, Javascript)
- 19. appliquer le style à la gamme de texte avec javascript dans uiwebview
- 20. Trouver à l'intérieur de UIWebView
- 21. NSString dans UIWebview
- 22. window.scrollto javascript appel à uiwebview mal se comporter
- 23. Comment faire exécuter un rappel javascript après une publication dans le panneau de mise à jour?
- 24. JavaScript: Passer les paramètres de modification à un rappel
- 25. Le rappel OnClick pense qu'il s'agit d'une fonction javascript?
- 26. Javascript ne fonctionne pas sur UIWebView
- 27. Le rappel JSONP échoue, besoin d'aide avec javascript/jquery
- 28. afficher le texte dans uiwebview dans iphone
- 29. Comment ajouter une fonction de rappel à un cours javascript?
- 30. Comment mettre en œuvre un rappel de téléphone à javascript
Existe-t-il un exemple de code pour illustrer cela? – nishantcm
Existe-t-il une autre option pour y parvenir? (par exemple, avec des versions iOS plus récentes)? –
@ lysergic-acid Je n'ai pas vraiment raté WebViews depuis un moment, mais j'imagine que non car c'est en fait une très bonne solution. A moins que vous ne puissiez lier un bloc aux événements JS (consultez les documents UIWebView). iOS 7 a ajouté JavaScriptCore mais je ne suis pas sûr que ce serait utile ici. – bpapa