1

Je développe une application Windows Phone 8.1 et il y a ce scénario où je devrais ouvrir le webview pour que l'utilisateur entre les détails de la carte. Une fois les détails de la carte saisis et traités, l'API de paiement renvoie les détails de la transaction sous forme de demande POST à ​​la vue Web. Je ne suis pas en mesure d'obtenir les données POST, a essayé tant de méthodes.Récupérer les données de demande de l'URI dans Webview Windows 8.1

Comment puis-je récupérer les données de publication renvoyées par le serveur? Merci à l'avance

+0

Avez-vous essayé d'utiliser WebAuthenticationBrocker avec l'option WebAuthenticationOptions.useHttpPost? – Konstantin

Répondre

0

trouvé un moyen de faire cela, en fait la demande du serveur POST avait tous les arguments du Querystring lui-même

l'événement Navigation_Completed Manches du WebView, les URI les args aura tous les détails nécessaires

+0

Dans UWP cela ne fonctionne pas.La requête est vide Mais j'ai trouvé une solution ... err ... ressemble plus à une solution de contournement. mais encore quelque chose .. postera comme réponse ici .. –

0

Si vous avez accès au code de la page Web, vous pouvez utiliser WebBrowser.ScriptNotify pour les données transférer de la page Web à WP

+0

Non, je n'ai pas accès à la page Web, devinez Im hors des idées – Prince

+0

Vous pouvez faire une demande POST de l'application WP. Peut être obtenir un résultat POST est comme voler des données et de cette façon n'est pas mis en œuvre. –

0

réponse pour UWP.

Remarque importante: J'ai le document html localement dans le dossier localcache. Je l'ouvre dans webview en utilisant ms-appdata:// schéma.

histoire de troubles infinis (peut-être un peu, il vous un certain temps):

Si j'ai envoyé la requête POST, je suis rien. Je reçois l'événement WebView_NavigationStarting, mais l'Uri seulement a été transféré. Pas de données POST. J'essaie de déboguer en utilisant alert

Juste pour réaliser que alert ne fonctionne pas dans WebView.

J'ai trouvé le correctif qui fait alert fonctionne en utilisant ScriptNotify événements. Juste pour réaliser que ScriptNotify ne fonctionne pas avec ms-appdata:// schéma. Donc, le correctif n'a pas fonctionné aussi bien.

J'ai appris comment déboguer dans VS en allant dans Paramètres du projet/Type de débogage/Débogueur/Processus d'application et sélectionnez "Script". Puis j'ai réalisé que je ne peux pas mettre de points d'arrêt dans un script dans Visual Studio. Et puis j'ai trouvé un petit hack - mettre le mot "débogueur"; dans votre code javascript et VS s'arrêtera là. Et vous pouvez déboguer en utilisant F10/F11. Oh oui bébé!

Ensuite, j'ai finalement abandonné et l'a changé en demande GET. Juste pour réaliser que cela ne fonctionne que jusqu'à ce que les données de forme dépassent ~ 2K. Après ça rien. NavigationStarting jamais viré, rien ne se passe.


Enfin, voici la solution :

private async void WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) 
    { 
     string result = await this.WebView.InvokeScriptAsync("eval", new string[] { "$('form').serialize()" }); 
    } 

Pas vraiment élégant, mais cela fonctionne !!! Et j'ai pu transférer 20K + de cette façon. C'est exactement ce dont j'avais besoin.