Windows 10 UWP Webview
我有两个html文件位于Windows 10 UWP中Assets(Assets / www / xxx.html)下的www文件夹中,VS 2015中的两个文件都设置为复制到输出目录。
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Simple Script</title>
</head>
<body>
<form action="submit.html" method="post">
Data:<input type="text" name="somedata" > <br> <br>
<input type="submit" value="Submit" >
</form>
</body>
</html>
and submit.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dummy Submission</title>
</head>
<body>
<h2> Your data has been submitted - Thank You. </h2>
</body>
</html>
Webview对象嵌入XMAL中,如下所示
<WebView x:Name="WebBrowser" HorizontalAlignment="Left" VerticalAlignment="Top" Height="532" Width="1014" NavigationStarting="WebBrowser_NavigationStarting"/>
索引页面由
加载 /// Helper to perform the navigation in webview
/// </summary>
/// <param name="url"></param>
private void NavigateWebview(string url)
{
try
{
Uri targetUri = new Uri(url);
WebBrowser.Navigate(targetUri);
}
catch (FormatException myE)
{
// Bad address
WebBrowser.NavigateToString(String.Format("<h1>Address is invalid, try again. Details --> {0}.</h1>", myE.Message));
}
}
NavigateWebview(@"ms-appx-web:///Assets/www/index.html");
页面正确加载并显示,但不会显示已关联的&#39; submit.html&#39;页面,它只是空白。
如果我捕获导航事件,它确实发生但似乎以GUID作为前缀,如下所示。
我已将路径更改为绝对等,并详细阅读文档,但我不明白为什么这不起作用。
想法请伙计......
答案 0 :(得分:1)
如果我捕获导航事件,它确实发生但似乎以GUID为前缀,如下所示
&#34; GUID&#34;是当前应用的包名称,它是URI schemes的权限的默认值。因此,如果您只想导航到另一个页面,那么这条绝对的路径是正确的。您可以按代码NavigateWebview(@"ms-appx-web://{your package name}/Assets//www/submit.html");
页面正确加载并显示,但不会显示已关联的&#39; submit.html&#39;页面,它只是空白
对于您的问题,我将form
方法更改为获取,它会起作用。
<form action="submit.html" method="get" id="myform">
Data:<input type="text" name="somedata"> <br> <br>
<input type="submit" value="Submit">
</form>
<a href="submit.html">Please Click Me to jump</a>
form
有两种提交表单数据的方法。通过URL字符串获取发送表单数据,通过服务器发送表单数据。在我看来,post方法首先发布数据然后导航,数据在服务器端处理。我还没有看到在HTML页面上收到并处理过的表单数据,所以我猜你不需要使用post方法。对于get方法,您可以通过javascript接收数据并进行处理,here是如何做的。