1

Ich entwickle eine Windows Phone 8.1 App und es gibt dieses Szenario, wo ich die Webansicht für den Benutzer öffnen sollte, um die Kartendaten einzugeben. Sobald die Kartendetails eingegeben und verarbeitet sind, sendet die Zahlungs-API die Transaktionsdetails als eine POST-Anfrage an die Webansicht zurück. Ich kann die POST-Daten nicht abrufen, habe so viele Methoden ausprobiert.Abrufen der Anfrage Daten von URI in Webview Windows 8.1

Wie bekomme ich die Post-Daten vom Server zurückgegeben? Vielen Dank im Voraus

+0

Haben Sie versucht, WebAuthenticationBrocker mit der Option WebAuthenticationOptions.useHttpPost zu verwenden? – Konstantin

Antwort

0

einen Weg gefunden zu WP, dies zu tun, eigentlich die Server-POST-Anforderung alle Argumente in der Abfragezeichen hatte sich

die Navigation_Completed Ereignis der Webansicht behandelter, haben die args URI alle Details für UWP

+0

In UWP funktioniert das nicht.Die Abfrage ist leer. Aber ich habe eine Lösung gefunden ... äh ... mehr sieht wie eine Umgehungslösung aus. aber immer noch etwas .. wird als Antwort hier posten .. –

0

Wenn Sie Zugriff auf Webseiten-Code haben, dann können Sie WebBrowser.ScriptNotify verwenden, um Daten von Webseiten Übertragung

+0

Nein, ich habe keinen Zugriff auf die Webseite, rate aus Ideen heraus – Prince

+0

Sie können POST-Anfrage von WP-Anwendung machen. Möglicherweise wird POST-Ergebnis wie Daten stehlen und auf diese Weise nicht implementiert. –

0

Antwort erforderlich.

Wichtiger Hinweis: Ich habe HTML-Dokument lokal im Localcache-Ordner. Ich öffne es in Webview mit ms-appdata:// Schema.

Geschichte der unendlichen Mühen (kann es einige, die Sie einige Zeit):

Wenn ich die POST-Anfrage gesendet, habe ich nichts. Ich bekomme WebView_NavigationStarting Ereignis, aber der Uri wurde nur übertragen. Keine POST-Daten.

Ich versuche zu debuggen mit alert. Nur um zu erkennen, dass alert nicht funktioniert in WebView.

Ich fand die Fehlerbehebung, die alert funktioniert mit ScriptNotify Ereignisse. Nur um zu erkennen, dass ScriptNotify nicht mit ms-appdata:// Schema funktioniert. Also die Reparatur hat nicht so gut funktioniert.

Ich habe gelernt, wie Debuggen in VS, indem Sie auf Projekteinstellungen/Debug/Debugger Typ/Anwendungsprozess und wählen Sie "Skript". Dann wurde mir klar, dass ich in Visual Studio keine Haltepunkte in Skripts setzen kann. Und dann habe ich einen kleinen Hack gefunden - setzen Sie das Wort "Debugger"; in Ihrem JavaScript-Code und VS wird dort aufhören. Und Sie können mit F10/F11 debuggen. Oh ja Baby!

Dann gab ich schließlich auf und änderte es in GET-Anfrage. Nur um zu erkennen, dass es nur funktioniert, bis die Formulardaten ~ 2K überschreiten. Danach nichts. NavigationStarting nie gefeuert, passiert einfach nichts.


schließlich hier die Lösung:

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

Nicht wirklich elegant, aber es funktioniert !!! Und ich konnte 20K + auf diese Weise übertragen. Genau das habe ich gebraucht.