在UWP中,' getHostEnvironmentValue'通过JavaScript调用

时间:2018-06-15 07:07:18

标签: uwp uwp-xaml

在我的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;

我无法弄清楚,出了什么问题。

1 个答案:

答案 0 :(得分:0)

作为getHostEnvironmentValue方法的介绍,此方法仅适用于Microsoft Edge。甚至通过Web视图控件将视图嵌入到使用Microsoft Edge呈现引擎呈现Web内容的uwp应用程序中,但是UWP WebView与Edge不同,而且,UWP应用程序运行沙盒,它具有更高的安全性和资源访问限制。因此,作为例外情况,此getHostEnvironmentValue方法无法在UWP应用中使用,因此不受支持。