我正在开发Windows Phone 8.1应用程序,在这种情况下我应该打开webview以便用户输入卡详细信息。输入和处理卡详细信息后,支付API会将交易详细信息作为POST请求发回Webview。我无法获取POST数据,尝试了很多方法。
如何从服务器返回返回的帖子数据?在此先感谢
答案 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
进行调试。只是意识到alert
在WebView
中无效。
我找到了使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 +。这正是我所需要的。