从Webview Windows 8.1中的URI检索请求数据

时间:2016-05-02 05:19:40

标签: webview windows-phone-8.1 win-universal-app windows-8.1 uwp-xaml

我正在开发Windows Phone 8.1应用程序,在这种情况下我应该打开webview以便用户输入卡详细信息。输入和处理卡详细信息后,支付API会将交易详细信息作为POST请求发回Webview。我无法获取POST数据,尝试了很多方法。

如何从服务器返回返回的帖子数据?在此先感谢

3 个答案:

答案 0 :(得分:0)

如果您可以访问网页代码,则可以使用WebBrowser.ScriptNotify将数据从网页传输到WP

答案 1 :(得分:0)

找到了一种方法,实际上Server POST请求包含Querystring本身的所有参数

处理webview的Navigation_Completed事件,args URI将包含所需的所有详细信息

答案 2 :(得分:0)

回答UWP。

重要提示:我在localcache文件夹中本地有html文档。我使用ms-appdata://方案在webview中打开它。

无限烦恼的故事(可能是你的某些时间):

如果我发送了POST请求,我什么也没得到。我得到WebView_NavigationStarting事件,但只转移了Uri。没有POST数据。

我尝试使用alert进行调试。只是意识到alertWebView中无效。

我找到了使alert使用ScriptNotify事件的修复方法。只是意识到ScriptNotify不适用于ms-appdata://计划。所以修复工作也没有用。

我通过转到Project settings / Debug / Debugger type / Application进程并选择" Script"来学习如何在VS中进行调试。然后我意识到我不能在Visual Studio中的脚本中放置断点。然后我发现了一个小小的黑客 - 把这个词放在"调试器上;"在你的JavaScript代码和VS将停在那里。您可以使用F10 / F11进行调试。哦,是的,宝贝!

然后我终于放弃并将其更改为GET请求。只是意识到它只有在表格数据超过〜2K时才有效。之后什么都没有。 NavigationStarting从未被解雇,只是没有发生任何事情。

最后,这里是解决方案

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

不是很优雅,但有效 !!!我能够以这种方式转移20K +。这正是我所需要的。