在我的UWP项目中,我使用Javascript来获取os-sku值,
MainWindows.xaml.cs:
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
//Load local html file using 'Navigate' method
WebBrowserName.Navigate(new Uri("ms-appx-web:///HTMLPage1.html"));
}
async void WebBrowserName_ScriptNotify(object sender, NotifyEventArgs e)
{
if (e.Value.StartsWith("SomeValue"))
{
Windows.UI.Popups.MessageDialog dialog = new Windows.UI.Popups.MessageDialog("Calling javascript function from C#");
await dialog.ShowAsync();
}
}
private void Button1_Click(object sender, RoutedEventArgs e)
{
WebBrowserName.InvokeScriptAsync("JSMethod", new string[] { "" });
}
}
和HTMLPage1.html:
<html>
<head>
<script type="text/javaScript">
function JSMethod() {
external.getHostEnvironmentValue('os-sku'); //Exception Occured
}
</script>
</head>
<body>
"OSSKU :
<p id="demo">
<script></script>
</p>
</body>
</html>
部署UWP应用程序并运行上述应用程序后,我得到了一个, 例外:
UWP 0x800a01b6 - javascript运行时错误:对象不支持 财产或方法&#39; gethostenvironmentvalue&#39;
我无法弄清楚,出了什么问题。
答案 0 :(得分:0)
作为getHostEnvironmentValue方法的介绍,此方法仅适用于Microsoft Edge。甚至通过Web视图控件将视图嵌入到使用Microsoft Edge呈现引擎呈现Web内容的uwp应用程序中,但是UWP WebView与Edge不同,而且,UWP应用程序运行沙盒,它具有更高的安全性和资源访问限制。因此,作为例外情况,此getHostEnvironmentValue方法无法在UWP应用中使用,因此不受支持。