pope-test-lite-chat-api
Version:
Tencent Cloud Chat SDK for Web/Mini Program/uni-app/React Native/Donut
3 lines (2 loc) • 4.15 kB
JavaScript
function n(n,t,e,i){return new(e||(e=Promise))((function(o,r){function s(n){try{a(i.next(n))}catch(n){r(n)}}function l(n){try{a(i.throw(n))}catch(n){r(n)}}function a(n){var t;n.done?o(n.value):(t=n.value,t instanceof e?t:new e((function(n){n(t)}))).then(s,l)}a((i=i.apply(n,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const t="none",e="online";class i{install(n){this._core=n,this._activateNetworkMonitoring(),n.notificationCenter.subscribeInnerEvent(n.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return n(this,void 0,void 0,(function*(){var n;null===(n=this._core)||void 0===n||n.store.set("netWorkMonitor",{isNetworkOnline:navigator.onLine,networkType:e}),this._onOnlineCallback=this._onOnline.bind(this),this._onOfflineCallback=this._onOffline.bind(this),window.addEventListener("online",this._onOnlineCallback),window.addEventListener("offline",this._onOfflineCallback)}))}_deactivateNetworkMonitoring(){null!==this._onOnlineCallback&&(window.removeEventListener("online",this._onOnlineCallback),this._onOnlineCallback=null),null!==this._onOfflineCallback&&(window.removeEventListener("offline",this._onOfflineCallback),this._onOfflineCallback=null)}_onNetworkStatusChange(n){var t,e;const{isConnected:i,networkType:o}=n;null===(t=this._core)||void 0===t||t.store.set("netWorkMonitor",{isNetworkOnline:i,networkType:o}),null===(e=this._core)||void 0===e||e.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:i,networkType:o})}_onOnline(){this._onNetworkStatusChange({isConnected:!0,networkType:e})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:t})}_reset(){var n;this._deactivateNetworkMonitoring(),null===(n=this._core)||void 0===n||n.store.clear("netWorkMonitor")}_dispose(){var n,t,e,i;null===(n=this._core)||void 0===n||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGIN,this._activateNetworkMonitoring,this),null===(t=this._core)||void 0===t||t.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(null===(i=this._core)||void 0===i?void 0:i.InnerEvent.DESTROY,this._dispose,this),this._reset()}}class o{install(n){this._core=n,this._activateNetworkMonitoring(),n.notificationCenter.subscribeInnerEvent(n.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return n(this,void 0,void 0,(function*(){try{wx.getNetworkType().then((n=>{var t;const{isConnected:e,networkType:i}=n;null===(t=this._core)||void 0===t||t.store.set("netWorkMonitor",{isNetworkOnline:e,networkType:i})})),this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),wx.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(n){console.error(n)}}))}_deactivateNetworkMonitoring(){null!==this._mpNetworkStatusCallback&&(wx.offNetworkStatusChange&&wx.offNetworkStatusChange(this._mpNetworkStatusCallback),this._mpNetworkStatusCallback=null)}_onNetworkStatusChange(n){var t,e;const{isConnected:i,networkType:o}=n;null===(t=this._core)||void 0===t||t.store.set("netWorkMonitor",{isNetworkOnline:i,networkType:o}),null===(e=this._core)||void 0===e||e.notificationCenter.emitInnerEvent("networkStatusChange",{isNetworkOnline:i,networkType:o})}_reset(){var n;this._deactivateNetworkMonitoring(),null===(n=this._core)||void 0===n||n.store.clear("netWorkMonitor")}_dispose(){var n,t,e,i;null===(n=this._core)||void 0===n||n.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGIN,this._activateNetworkMonitoring,this),null===(t=this._core)||void 0===t||t.notificationCenter.unSubscribeInnerEvent(this._core.InnerEvent.LOGOUT,this._reset,this),null===(e=this._core)||void 0===e||e.notificationCenter.unSubscribeInnerEvent(null===(i=this._core)||void 0===i?void 0:i.InnerEvent.DESTROY,this._dispose,this),this._reset()}}const r="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting);console.log("network-monitor");var s={install:function(n){r?(new o).install(n):(new i).install(n)}};export{s as default};
//# sourceMappingURL=network-monitor.js.map