1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import web_webview from '@ohos.web.webview'; 17import baseData from '../../common/baseData' 18import logger from '../../common/logger' 19import returnInfo from '../component/autoManager/returnInfo' 20import utils from '../../common/utils' 21 22const TAG = 'UnitManagerShowPage'; 23 24@Entry 25@Component 26struct UnitManagerShowPage { 27 @StorageLink('manageUrl') manageUrl: string = AppStorage.Get('manageUrl') as string; 28 webviewController: web_webview.WebviewController = new web_webview.WebviewController(); 29 30 build() { 31 Column() { 32 GridContainer({ 33 columns: utils.isLargeDevice(), 34 sizeType: SizeType.Auto, 35 gutter: '12vp', 36 margin: '12vp' 37 }) { 38 Column() { 39 returnInfo({ headName: $r('app.string.manageInfo') }) 40 } 41 .useSizeType({ 42 xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 }, 43 md: { span: 8, offset: 0 }, lg: { span: 12, offset: 0 } 44 }) 45 } 46 47 GridContainer({ 48 columns: utils.isLargeDevice(), 49 sizeType: SizeType.Auto, 50 gutter: '12vp', 51 margin: '12vp' 52 }) { 53 Column() { 54 Web({ src: this.manageUrl, controller: this.webviewController }) 55 .cacheMode(CacheMode.Online) 56 .fileAccess(false) 57 .javaScriptAccess(false) 58 .onErrorReceive((event?: ErrorReceiveEvent) => { 59 logger.warn(TAG, 'error code=' + event?.error.getErrorCode() + ', error info=' + 60 event?.error.getErrorInfo()) 61 }) 62 .onHttpErrorReceive((event?: HttpErrorReceiveEvent) => { 63 logger.warn(TAG, 'response code=' + event?.response.getResponseCode() + ', response message=' + 64 event?.response.getReasonMessage()) 65 }) 66 .onRenderExited((event?: RenderExitedEvent) => { 67 logger.warn(TAG, 'renderExitReason=' + event?.renderExitReason); 68 }) 69 .useSizeType({ 70 xs: { span: 4, offset: 2 }, sm: { span: 4, offset: 2 }, 71 md: { span: 4, offset: 2 }, lg: { span: 4, offset: 2 } 72 }) 73 } 74 .useSizeType({ 75 xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 }, 76 md: { span: 8, offset: 0 }, lg: { span: 8, offset: 2 } 77 }) 78 } 79 } 80 .backgroundColor(0xF1F3F5) 81 .alignItems(HorizontalAlign.Center) 82 .width('100%') 83 .height('100%') 84 } 85 86 aboutToAppear() { 87 logger.info(TAG, 'enter UnitManagerShowPage') 88 if (!this.manageUrl.startsWith(baseData.HTTPS)) { 89 this.manageUrl = ''; 90 } 91 } 92} 93 94interface ErrorReceiveEvent { 95 request: WebResourceRequest, 96 error: WebResourceError 97} 98 99interface HttpErrorReceiveEvent { 100 request: WebResourceRequest, 101 response: WebResourceResponse 102} 103 104interface RenderExitedEvent { 105 renderExitReason: RenderExitReason 106}