/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import web_webview from '@ohos.web.webview';
import baseData from '../../common/baseData'
import logger from '../../common/logger'
import returnInfo from '../component/autoManager/returnInfo'
import utils from '../../common/utils'
const TAG = 'UnitManagerShowPage';
@Entry
@Component
struct UnitManagerShowPage {
@StorageLink('manageUrl') manageUrl: string = AppStorage.Get('manageUrl') as string;
webviewController: web_webview.WebviewController = new web_webview.WebviewController();
build() {
Column() {
GridContainer({
columns: utils.isLargeDevice(),
sizeType: SizeType.Auto,
gutter: '12vp',
margin: '12vp'
}) {
Column() {
returnInfo({ headName: $r('app.string.manageInfo') })
}
.useSizeType({
xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 },
md: { span: 8, offset: 0 }, lg: { span: 12, offset: 0 }
})
}
GridContainer({
columns: utils.isLargeDevice(),
sizeType: SizeType.Auto,
gutter: '12vp',
margin: '12vp'
}) {
Column() {
Web({ src: this.manageUrl, controller: this.webviewController })
.cacheMode(CacheMode.Online)
.fileAccess(false)
.javaScriptAccess(false)
.onErrorReceive((event?: ErrorReceiveEvent) => {
logger.warn(TAG, 'error code=' + event?.error.getErrorCode() + ', error info=' +
event?.error.getErrorInfo())
})
.onHttpErrorReceive((event?: HttpErrorReceiveEvent) => {
logger.warn(TAG, 'response code=' + event?.response.getResponseCode() + ', response message=' +
event?.response.getReasonMessage())
})
.onRenderExited((event?: RenderExitedEvent) => {
logger.warn(TAG, 'renderExitReason=' + event?.renderExitReason);
})
.useSizeType({
xs: { span: 4, offset: 2 }, sm: { span: 4, offset: 2 },
md: { span: 4, offset: 2 }, lg: { span: 4, offset: 2 }
})
}
.useSizeType({
xs: { span: 8, offset: 0 }, sm: { span: 8, offset: 0 },
md: { span: 8, offset: 0 }, lg: { span: 8, offset: 2 }
})
}
}
.backgroundColor(0xF1F3F5)
.alignItems(HorizontalAlign.Center)
.width('100%')
.height('100%')
}
aboutToAppear() {
logger.info(TAG, 'enter UnitManagerShowPage')
if (!this.manageUrl.startsWith(baseData.HTTPS)) {
this.manageUrl = '';
}
}
}
interface ErrorReceiveEvent {
request: WebResourceRequest,
error: WebResourceError
}
interface HttpErrorReceiveEvent {
request: WebResourceRequest,
response: WebResourceResponse
}
interface RenderExitedEvent {
renderExitReason: RenderExitReason
}