Android, Webview, obtenir des données soumises par le formulaire
Je veux que mon application Android pour utiliser Webview pour afficher un formulaire html. Lorsque l'utilisateur appuie sur le bouton Submit, il veut les paires nom/valeur renvoyé à mon programme. Comment puis-je faire cela?
J'ai regardé d'autres questions similaires, mais pas de réponses raconter comment, plus précisément, pour ce faire.
OriginalL'auteur Xarph | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Qui portent sur l'utilisation de Javascript interfaces dans WebView. Veuillez voir cette zone de la Guide pour les Développeurs Android. Essentiellement, vous devriez être en mesure de communiquer à partir de la page de l'appareil avec le Javascript interface et laissez votre WebView Activité savoir quand les soumettre bouton est pressé et transmettre ses valeurs.
OriginalL'auteur Anthony Atkinson
J'ai trouvé ce dont j'avais besoin. Si j'ai mis en action= "FORMULAIRE" dans le formulaire html, alors je peux intercepter l'action avec:
Les paires nom/valeur sont dans la Chaîne d.
OriginalL'auteur Xarph
Si vous voulez économiser de paires Nom/Valeur et sont prêts à utiliser jQuery, c'est assez simple.
En supposant que vous mettre jQuery dans votre dossier des actifs, vous pouvez le lire dans un fichier à partir de:
Dans le WebViewClient que vous définissez (en supposant que vous avez changé le client) que vous pouvez faire:
Ensuite, assurez-vous d'avoir un JavascriptInterface configuré pour votre webview avec une méthode, par exemple, appelé " ReturnJSONFromForm(String json)' configuré pour "MyJInterface" puis de charger le formulaire dans la page et ensuite, essayez ceci:
Maintenant dans votre interface, il suffit de créer un JSONObject de la chaîne résultante et là vous allez! Paires nom/Valeur de votre formulaire.
Sérialiser ne capture désactivé les champs ou les boutons de soumission.. si vous avez besoin, puis de plus en plus complexe javascript solution existe mais il est beaucoup plus difficile.
OriginalL'auteur d0nut