在我的Windows Phone应用程序加载之前验证外部资源说html页面

时间:2017-05-04 12:53:13

标签: c# android webview uwp wkwebview

如何将数据传递到我在webview中加载的html页面并从中传递。 我想将用户名/密码传递给我的应用程序中的html验证页面,然后在应用程序中加载它。我甚至想将一些数据传递给静态页面

1 个答案:

答案 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页面的更多详细信息