• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}