1

我正在开发一个 Windows phone 8.1 应用程序,在这种情况下,我应该打开 web 视图让用户输入卡片详细信息。输入并处理卡详细信息后,支付 API 会将交易详细信息作为 POST 请求发送回 web 视图。我无法获取 POST 数据,尝试了很多方法。

如何获取从服务器返回的帖子数据?提前致谢

4

3 回答 3

0

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

于 2016-05-02T06:03:30.173 回答
0

找到了一种方法来做到这一点,实际上服务器 POST 请求在 Querystring 本身中包含所有参数

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

于 2016-08-19T10:25:35.683 回答
0

UWP 的答案。

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

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

如果我发送 POST 请求,我什么也得不到。我得到WebView_NavigationStarting了事件,但 Uri 只被转移了。无更新数据。

我尝试使用alert. 只是意识到这alertWebView.

我找到了alert使用ScriptNotify事件进行工作的修复程序。只是要意识到这ScriptNotify不适用于ms-appdata://方案。所以修复也没有奏效。

我通过转到项目设置/调试/调试器类型/应用程序进程并选择“脚本”来了解如何在 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+。这正是我所需要的。

于 2017-02-17T21:52:29.223 回答