From 063d5610d26c38f58e99d9d44a6300bee539e44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=B3=E4=B8=9C=E6=B5=B7?= Date: Thu, 15 May 2025 10:06:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=9D=97=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entry/src/main/ets/entryability/EntryAbility.ets | 8 ++++++++ .../entry/src/main/ets/pages/HTTPReconnection.ets | 2 ++ .../entry/src/main/ets/pages/RCPReconnection.ets | 4 ++++ .../entry/src/main/ets/pages/SocketReconnection.ets | 10 ++++++++++ .../entry/src/main/ets/utils/ConnectionUtil.ets | 2 ++ 5 files changed, 26 insertions(+) diff --git a/NetworkReconnection/entry/src/main/ets/entryability/EntryAbility.ets b/NetworkReconnection/entry/src/main/ets/entryability/EntryAbility.ets index 176523e..1619714 100644 --- a/NetworkReconnection/entry/src/main/ets/entryability/EntryAbility.ets +++ b/NetworkReconnection/entry/src/main/ets/entryability/EntryAbility.ets @@ -3,7 +3,9 @@ import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; import ConnectionUtil from '../utils/ConnectionUtil'; +// [Start entry_ability] export default class EntryAbility extends UIAbility { + // DocsDot onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); } @@ -30,19 +32,25 @@ export default class EntryAbility extends UIAbility { // Main window is destroyed, release UI related resources hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); } + // DocsDot onForeground(): void { // Ability has brought to foreground + // DocsDot ConnectionUtil.register(); ConnectionUtil.netCapabilitiesChange(); AppStorage.setOrCreate('onForeground', true); + // DocsDot hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); } onBackground(): void { // Ability has back to background + // DocsDot ConnectionUtil.unregister(); + // DocsDot AppStorage.setOrCreate('onForeground', false); hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); } } +// [End entry_ability] diff --git a/NetworkReconnection/entry/src/main/ets/pages/HTTPReconnection.ets b/NetworkReconnection/entry/src/main/ets/pages/HTTPReconnection.ets index b06255f..73d9efe 100644 --- a/NetworkReconnection/entry/src/main/ets/pages/HTTPReconnection.ets +++ b/NetworkReconnection/entry/src/main/ets/pages/HTTPReconnection.ets @@ -117,6 +117,7 @@ export struct HTTPReconnection { } } + // [Start get_http_request] async getHttpRequest(url: string, retry: number): Promise { try { return await this.httpRequest?.requestInStream(url, @@ -138,4 +139,5 @@ export struct HTTPReconnection { return; } } + // [End get_http_request] } diff --git a/NetworkReconnection/entry/src/main/ets/pages/RCPReconnection.ets b/NetworkReconnection/entry/src/main/ets/pages/RCPReconnection.ets index 4d1adb6..dd08857 100644 --- a/NetworkReconnection/entry/src/main/ets/pages/RCPReconnection.ets +++ b/NetworkReconnection/entry/src/main/ets/pages/RCPReconnection.ets @@ -87,6 +87,7 @@ export struct RCPReconnection { .title(CommonConstants.RCP_DOWNLOAD) } + // [Start create_rcp_session] createRCPSession(): rcp.Session { const customHttpEventsHandler: rcp.HttpEventsHandler = { onDownloadProgress: (totalSize: number, transferredSize: number) => { @@ -114,6 +115,7 @@ export struct RCPReconnection { return rcp.createSession(sessionConfig); } + // DocsDot rcpDownloadFile() { this.process = Math.floor(this.downloadSize / this.contentLength * 100); const helper = photoAccessHelper.getPhotoAccessHelper(this.context); @@ -137,6 +139,7 @@ export struct RCPReconnection { }); }); } + // DocsDot async getRcpRequest(url: string, retry: number): Promise { try { @@ -158,4 +161,5 @@ export struct RCPReconnection { return; } } + // [End create_rcp_session] } diff --git a/NetworkReconnection/entry/src/main/ets/pages/SocketReconnection.ets b/NetworkReconnection/entry/src/main/ets/pages/SocketReconnection.ets index b53c5b2..8e8c484 100644 --- a/NetworkReconnection/entry/src/main/ets/pages/SocketReconnection.ets +++ b/NetworkReconnection/entry/src/main/ets/pages/SocketReconnection.ets @@ -27,8 +27,12 @@ import { photoAccessHelper } from '@kit.MediaLibraryKit'; export struct SocketReconnection { @State process: number = 0; @State isDownload: boolean = false; + // [Start storage_net_available] @StorageProp('netAvailable') @Watch('onSocketUpdated') netAvailable: boolean = true; + // [End storage_net_available] + // [Start storage_on_foreground] @StorageProp('onForeground') @Watch('onForegroundChange') onForeground: boolean = true; + // DocsDot private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; private tcp?: socket.TCPSocket; private receivedDataBuf: buffer.Buffer = buffer.alloc(15 * 1024 * 1024); @@ -43,16 +47,20 @@ export struct SocketReconnection { aboutToAppear(): void { this.tcpSocketConnect(); } + // DocsDot onForegroundChange(): void { this.onForeground ? this.tcpSocketConnect() : this.tcpSocketDisconnect(); } + // [End storage_on_foreground] + // [Start on_socket_updated] onSocketUpdated() { this.netAvailable ? this.tcpSocketConnect() : this.tcpSocketDisconnect(); Logger.info('netAvailable:' + this.netAvailable); } + // DocsDot build() { NavDestination() { Column() { @@ -106,6 +114,7 @@ export struct SocketReconnection { } .title(CommonConstants.Socket_DOWNLOAD) } + // DocsDot tcpSocketConnect() { if (!this.netAvailable) { @@ -152,6 +161,7 @@ export struct SocketReconnection { }); }); } + // [End on_socket_updated] tcpSocketDisconnect() { this.tcp?.close(); diff --git a/NetworkReconnection/entry/src/main/ets/utils/ConnectionUtil.ets b/NetworkReconnection/entry/src/main/ets/utils/ConnectionUtil.ets index 6573898..f00f1c2 100644 --- a/NetworkReconnection/entry/src/main/ets/utils/ConnectionUtil.ets +++ b/NetworkReconnection/entry/src/main/ets/utils/ConnectionUtil.ets @@ -18,6 +18,7 @@ import { BusinessError } from '@kit.BasicServicesKit'; import Logger from '../utils/Logger'; export class ConnectionUtil { + // [Start net_capabilities_change] private netCon: connection.NetConnection = connection.createNetConnection(); register() { @@ -43,6 +44,7 @@ export class ConnectionUtil { Logger.info("WifiChangeListen-- Succeeded to get data: " + JSON.stringify(data)); }); } + // [End net_capabilities_change] unregister() { this.netCon.unregister((error: BusinessError) => { -- Gitee