如何检查Windows 8存储HTML/JS应用程序中的多个页面是否可以使用Internet连接?

mvp*_*mvp 5 windows-8 winjs

在主页中,我使用了registerForNetworkStatusChangeNotif()函数(我从MSDN借用)来注册网络通知更改.该函数添加了一个事件监听器networkstatuschanged,它可以单独用于该页面,即连接中断时显示错误,并在连接恢复时自动刷新页面 -

var networkInfo = Windows.Networking.Connectivity.NetworkInformation; ... networkInfo.addEventListener("networkstatuschanged",onNetworkStatusChange);

我应该如何处理其他页面的Internet可用性检查?

我已经尝试在default.js中注册此函数,以便它可用于所有页面.我的应用程序使用Geolocation功能和statuschanged事件与networkstatuschanged事件冲突,我的应用程序无法显示Internet连接错误的丢失.如何解决此问题,以便正确处理Internet连接的不可用性.

Cœu*_*œur 5

您需要听特定的事件。并在触发时检查互联网连接。

var networkInformation = Windows.Networking.Connectivity.NetworkInformation;
...

ready: function(element, options)
{
   // Registering for connection change
   networkInformation.addEventListener("networkstatuschanged", this.onNetworkStatusChanged);
   ...
}

unload: function()
{
   // Unregistering for connection change
   networkInformation.removeEventListener("networkstatuschanged", this.onNetworkStatusChanged);
   ...
}

onNetworkStatusChanged: function(eventArgs)
{
    // Retrieve the InternetConnectionProfile
    var internetConnectionProfile = networkInformation.getInternetConnectionProfile();
    // Accesses the NetworkConnectivityLevel
    var networkConnectivityLevel = internetConnectionProfile.getNetworkConnectivityLevel();
    // Switch on NetworkConnectivityLevel
    switch (networkConnectivityLevel) {
        case Windows.Networking.Connectivity.NetworkConnectivityLevel.none:
           ...
        case Windows.Networking.Connectivity.NetworkConnectivityLevel.localAccess:
           ...
        case Windows.Networking.Connectivity.NetworkConnectivityLevel.constrainedInternetAccess:
           ...
        case Windows.Networking.Connectivity.NetworkConnectivityLevel.internetAccess:
           ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)