我正在开发一个 Windows phone 8.1 应用程序,在这种情况下,我应该打开 web 视图让用户输入卡片详细信息。输入并处理卡详细信息后,支付 API 会将交易详细信息作为 POST 请求发送回 web 视图。我无法获取 POST 数据,尝试了很多方法。
如何获取从服务器返回的帖子数据?提前致谢
我正在开发一个 Windows phone 8.1 应用程序,在这种情况下,我应该打开 web 视图让用户输入卡片详细信息。输入并处理卡详细信息后,支付 API 会将交易详细信息作为 POST 请求发送回 web 视图。我无法获取 POST 数据,尝试了很多方法。
如何获取从服务器返回的帖子数据?提前致谢
如果您有权访问网页代码,则可以使用WebBrowser.ScriptNotify将数据从网页传输到 WP
找到了一种方法来做到这一点,实际上服务器 POST 请求在 Querystring 本身中包含所有参数
处理 webview 的 Navigation_Completed 事件,args URI 将包含所需的所有详细信息
UWP 的答案。
重要提示:我在 localcache 文件夹中本地有 html 文档。ms-appdata://
我使用方案在 webview 中打开它。
无限麻烦的故事(可能是你的一些时间):
如果我发送 POST 请求,我什么也得不到。我得到WebView_NavigationStarting
了事件,但 Uri 只被转移了。无更新数据。
我尝试使用alert
. 只是意识到这alert
在WebView
.
我找到了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+。这正是我所需要的。