如何将数据传递到我在webview中加载的html页面并从中传递。 我想将用户名/密码传递给我的应用程序中的html验证页面,然后在应用程序中加载它。我甚至想将一些数据传递给静态页面
答案 0 :(得分:0)
您尚未提供HTML页面。所以我尝试根据你的描述创建一个简单的html页面。
在uwp应用程序中,您可以使用InvokeScriptAsync
方法将数据传递到html页面。并且调用的脚本只能返回字符串值。
例如,如果名为MyWebView的Web视图的内容包含一个带有两个参数的名为Login
的函数,则可以像这样调用它。
Html Page
<body >
<script type="text/javascript">
function Login(account, psw) {
document.getElementById('act').innerText = account;
document.getElementById('psw').innerText = psw;
}
</script>
<input type="text" id="act" name="accout"/>
<input type="text" id="psw" name="password"/>
</body>
<强> MainPage.xaml.cs中强>
private async void PassDataBtn_Click(object sender, RoutedEventArgs e)
{
string[] args = { "account", "psw" };
string returnValue = await MyWebView.InvokeScriptAsync("Login", args);
}
如果您不知道html页面内容,可以使用InvokeScriptAsync
和JavaScript eval函数将内容注入网页。
private async void PassDataBtn_Click(object sender, RoutedEventArgs e)
{
string functionString = String.Format("document.getElementById('act').innerText = '{0}'; document.getElementById('psw').innerText = '{1}' ", "Nico","PSW");
await MyWebView.InvokeScriptAsync("eval", new string[] { functionString });
}
有关详细信息,请参阅有关Web view的官方文档。如果此解决方法不适用于您的方案,请分享有关您的html页面的更多详细信息