Windows 8 如何检查Windows 8 Store HTML/JS应用程序中的多个页面是否具有Internet连接?

Windows 8 如何检查Windows 8 Store HTML/JS应用程序中的多个页面是否具有Internet连接?,windows-8,winjs,Windows 8,Winjs,在主页中,我使用registerForNetworkStatusChangeNotif()函数()注册网络通知更改。该函数添加了一个事件侦听器networkstatuschanged,仅此页面就可以正常工作,即连接中断时会显示错误,恢复连接时会自动刷新页面- var networkInfo=Windows.Networking.Connectivity.NetworkInformation; ... networkInfo.addEventListener(“networkstatuschang

在主页中,我使用registerForNetworkStatusChangeNotif()函数()注册网络通知更改。该函数添加了一个事件侦听器networkstatuschanged,仅此页面就可以正常工作,即连接中断时会显示错误,恢复连接时会自动刷新页面-

var networkInfo=Windows.Networking.Connectivity.NetworkInformation; ... networkInfo.addEventListener(“networkstatuschange”,onNetworkStatusChange)

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


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

我希望自动页面“刷新”是由于数据绑定造成的。要获得更多控制,您需要绑定到“就绪”页上的网络对象,然后在“卸载”页上再次解除绑定。例如:

var networkInfo = Windows.Networking.Connectivity.NetworkInformation;
this.networkHandler = this._doSomething();
...
..

ready: function(element, options)
{
   networkInfo.addEventListener(this.networkHandler);
   ...
   ..
}

unload: function()
{
   networkInfo.removeEventListener(this.networkHandler);
   ...
   ..
}

_doSomething : function(event)
{
    // Examine the 'event' object and perform 'refresh' accordingly
    // Most likely a call to WinJS.Binding.processAll(...)
}
然后,您只需要定义处理程序方法“\u doSomething()”来检查“event”对象传递的连接细节,并相应地触发绑定/刷新逻辑


希望这有帮助

您需要收听特定事件。当它开火时,你检查互联网连接

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:
           ...
    }
    ...
}

能否提供更多的上下文来了解如何添加此事件侦听器?你把它移走了吗?