• 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');
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?: {
59              request: WebResourceRequest,
60              error: WebResourceError
61            }) => {
62              logger.warn(TAG, 'error code=' + event.error.getErrorCode()
63                + ', error info=' + event.error.getErrorInfo())
64            })
65            .onHttpErrorReceive((event?: {
66              request: WebResourceRequest,
67              response: WebResourceResponse
68            }) => {
69              logger.warn(TAG, 'response code=' + event.response.getResponseCode()
70                + ', response message=' + event.response.getReasonMessage())
71            })
72            .onRenderExited((event?: {
73              renderExitReason: RenderExitReason
74            }) => {
75              logger.warn(TAG, 'renderExitReason=' + event.renderExitReason);
76            })
77            .useSizeType({
78              xs: { span: 4, offset: 2 }, sm: { span: 4, offset: 2 },
79              md: { span: 4, offset: 2 }, lg: { span: 4, offset: 2 }
80            })
81        }
82        .useSizeType({
83          xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 },
84          md: { span: 8, offset: 0 }, lg: { span: 8, offset: 2 }
85        })
86      }
87    }
88    .backgroundColor(0xF1F3F5)
89    .alignItems(HorizontalAlign.Center)
90    .width('100%')
91    .height('100%')
92  }
93
94  aboutToAppear() {
95    logger.info(TAG, 'enter UnitManagerShowPage')
96    if (!this.manageUrl.startsWith(baseData.HTTPS)) {
97      this.manageUrl = '';
98    }
99  }
100}