diff --git a/webprerenderlibrary/src/main/ets/WebPrerenderController.ets b/webprerenderlibrary/src/main/ets/WebPrerenderController.ets index 2ef7bacf4fa67c8aae0b279c27dbb7b69044c20a..ef1591d3e4f65d51078aea6bfc228f908de7f87f 100644 --- a/webprerenderlibrary/src/main/ets/WebPrerenderController.ets +++ b/webprerenderlibrary/src/main/ets/WebPrerenderController.ets @@ -12,12 +12,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { UIAbility } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { WindowUtil } from './common/utils/WindowUtil'; export class WebPrerenderController { - public static initWindowConfig(windowStage: window.WindowStage, ability: UIAbility): void { - WindowUtil.initialize(windowStage, ability); + public static initWindowConfig(windowStage: window.WindowStage): void { + WindowUtil.initialize(windowStage); } } \ No newline at end of file diff --git a/webprerenderlibrary/src/main/ets/common/ResourceUtil.ets b/webprerenderlibrary/src/main/ets/common/ResourceUtil.ets index 99a7edf377a3b97229be93673f589ed0fa3b3e51..fef4ed7f64dc9b01f00126ca7c3d840168921bfe 100644 --- a/webprerenderlibrary/src/main/ets/common/ResourceUtil.ets +++ b/webprerenderlibrary/src/main/ets/common/ResourceUtil.ets @@ -16,6 +16,7 @@ import { JSON, util } from '@kit.ArkTS'; import { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; +import { Constants } from './Constants'; export class ResourceUtil { /** @@ -23,13 +24,17 @@ export class ResourceUtil { * * @param resource resource. */ - public static getResourceString(context: Context, resource: Resource): string { + public static getResourceString(resource: Resource): string { if (ResourceUtil.isEmptyObj(resource)) { return ''; } + const context: UIContext | undefined = AppStorage.get(Constants.KEY_UI_CONTEXT); + if (!context) { + return ''; + } let resourceString: string = ''; try { - resourceString = context.resourceManager.getStringSync(resource.id); + resourceString = context.getHostContext()!.resourceManager.getStringSync(resource.id); } catch (error) { hilog.error(0x0000, 'WebviewController', '%{public}s', `ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message}`); @@ -56,9 +61,13 @@ export class ResourceUtil { * @param key The Json key value. * @returns Return the value of the key. */ - public static getRawFileStringByKey(context: Context, key: ConfigMapKey): string { + public static getRawFileStringByKey(key: ConfigMapKey): string { try { - const result: Uint8Array = context.resourceManager.getRawFileContentSync('config.json'); + const context: UIContext | undefined = AppStorage.get(Constants.KEY_UI_CONTEXT); + if (!context) { + return ''; + } + const result: Uint8Array = context.getHostContext()!.resourceManager.getRawFileContentSync('config.json'); const textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM: true }); const content: string = textDecoder.decodeToString(result, { stream: false }); const jsonContent: ConfigMapData = JSON.parse(content) as ConfigMapData; diff --git a/webprerenderlibrary/src/main/ets/common/utils/WindowUtil.ets b/webprerenderlibrary/src/main/ets/common/utils/WindowUtil.ets index e9f32672d149f73ced73c2abd24a7799b61f52b3..955194cb767723e9ef5a5927f8bb743a7c290354 100644 --- a/webprerenderlibrary/src/main/ets/common/utils/WindowUtil.ets +++ b/webprerenderlibrary/src/main/ets/common/utils/WindowUtil.ets @@ -13,7 +13,6 @@ * limitations under the License. */ -import { common, UIAbility } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import type { BusinessError } from '@kit.BasicServicesKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; @@ -27,13 +26,13 @@ const TAG: string = '[WindowUtil]'; export class WindowUtil { private static windowClass: window.Window; - public static initialize(windowStage: window.WindowStage, ability: UIAbility) { + public static initialize(windowStage: window.WindowStage) { try { WindowUtil.windowClass = windowStage.getMainWindowSync(); const uiContext: UIContext = WindowUtil.windowClass.getUIContext(); AppStorage.setOrCreate(Constants.KEY_UI_CONTEXT, uiContext); WindowUtil.requestFullScreen(WindowUtil.windowClass); - WindowUtil.registerBreakPoint(WindowUtil.windowClass, ability); + WindowUtil.registerBreakPoint(WindowUtil.windowClass); } catch (err) { const error = err as BusinessError; hilog.error(0x0000, TAG, `Initialize failed. Cause code: ${error.code}, message: ${error.message}`); @@ -56,7 +55,7 @@ export class WindowUtil { } - public static registerBreakPoint(data: window.Window, ability: UIAbility) { + public static registerBreakPoint(data: window.Window) { try { BreakpointSystem.getInstance().updateWidthBp(data); @@ -74,8 +73,7 @@ export class WindowUtil { hilog.error(0x0000, TAG, `Register avoidAreaChange or windowSizeChange failed. code: ${error.code}, message: ${error.message}`); } - createNWeb(ResourceUtil.getRawFileStringByKey(getContext(ability) as common.UIAbilityContext, - ConfigMapKey.GALLERY_URL), data.getUIContext()); + createNWeb(ResourceUtil.getRawFileStringByKey(ConfigMapKey.GALLERY_URL), data.getUIContext()); } // Get status bar height and indicator height. diff --git a/webprerenderlibrary/src/main/ets/view/WebPage.ets b/webprerenderlibrary/src/main/ets/view/WebPage.ets index b4df6c2a4713e0b413ac33085550521bc9177fba..18bb76efccdc22ea48b00b3c22c623f12cf8cb13 100644 --- a/webprerenderlibrary/src/main/ets/view/WebPage.ets +++ b/webprerenderlibrary/src/main/ets/view/WebPage.ets @@ -13,7 +13,6 @@ * limitations under the License. */ -import { common } from '@kit.AbilityKit'; import { BuilderNode, FrameNode, NodeController, UIContext } from '@kit.ArkUI'; import { webview } from '@kit.ArkWeb'; import { BusinessError } from '@kit.BasicServicesKit'; @@ -23,7 +22,7 @@ import { ConfigMapKey, ResourceUtil } from '../common/ResourceUtil'; class Data { public url: string = - ResourceUtil.getRawFileStringByKey(getContext(this) as common.UIAbilityContext, ConfigMapKey.GALLERY_URL); + ResourceUtil.getRawFileStringByKey(ConfigMapKey.GALLERY_URL); public controller: WebviewController = new webview.WebviewController(); } diff --git a/webprerenderlibrary/src/main/ets/view/WebPreRenderView.ets b/webprerenderlibrary/src/main/ets/view/WebPreRenderView.ets index 7ff8413b19dd27a7fd4ac690deea4f9eec8678de..b0037bd335f828f77b14f3f4f0f0fadb51fbb730 100644 --- a/webprerenderlibrary/src/main/ets/view/WebPreRenderView.ets +++ b/webprerenderlibrary/src/main/ets/view/WebPreRenderView.ets @@ -13,7 +13,6 @@ * limitations under the License. */ -import { common } from '@kit.AbilityKit'; import { Constants } from '../common/Constants'; import { ConfigMapKey, ResourceUtil } from '../common/ResourceUtil'; import { BreakpointType, BreakpointTypeEnum } from '../common/utils/BreakpointSystem'; @@ -29,8 +28,7 @@ export struct WebPreRenderView { @Builder mySheet() { Column() { - NodeContainer(getNWeb(ResourceUtil.getRawFileStringByKey(getContext(this) as common.UIAbilityContext, - ConfigMapKey.GALLERY_URL))) + NodeContainer(getNWeb(ResourceUtil.getRawFileStringByKey(ConfigMapKey.GALLERY_URL))) .height($r('app.string.full_height_width')) .width($r('app.string.full_height_width')) } diff --git a/webprerendersample/src/main/ets/entryability/EntryAbility.ets b/webprerendersample/src/main/ets/entryability/EntryAbility.ets index d3b08d2a30b86aff0d07610d8c21ea4d828811ea..e7d674cb7af40acacaed2f6093f448f72e446192 100644 --- a/webprerendersample/src/main/ets/entryability/EntryAbility.ets +++ b/webprerendersample/src/main/ets/entryability/EntryAbility.ets @@ -36,7 +36,7 @@ export default class WebPrerenderSampleAbility extends UIAbility { hilog.error(0x0000, 'testTag', '%{public}s', `Failed to load the content. Cause: ${err.code}`); return; } - WebPrerenderController.initWindowConfig(windowStage, this); + WebPrerenderController.initWindowConfig(windowStage); hilog.info(0x0000, 'testTag', '%{public}s', `Succeed in loading the content.`); }); }