From 4eaf337930da07a7df4104622fab736bf8b5e29d Mon Sep 17 00:00:00 2001 From: DevWiki Date: Tue, 16 Apr 2024 19:41:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A6=96=E9=A1=B5=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E4=BB=A5=E5=8F=8A=E6=B7=BB=E5=8A=A0=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E7=AD=BE=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/ets/pages/Index.ets | 139 ++++++++++-------- app/src/main/ets/pages/PhotoPage.ets | 64 ++++++++ app/src/main/ets/pages/WebPage.ets | 3 +- .../ets/pages/layout/LinearLayoutPage.ets | 58 ++++++-- .../resources/base/profile/main_pages.json | 3 +- build-profile.json5 | 13 ++ build_script/sign/HM4Demo.cer | 50 +++++++ build_script/sign/HM4Demo.csr | 9 ++ build_script/sign/HM4Demo.p12 | Bin 0 -> 1128 bytes build_script/sign/HM4Demo.p7b | Bin 0 -> 4212 bytes .../ac/21fb7147ec9140d8a2166a5957d70883 | 1 + .../ce/7e38397df3804a04b190233b5e9e6a6b | Bin 0 -> 48 bytes .../fd/0/241943518c844e15ba9133307f98db89 | 1 + .../fd/1/74287bfdaa724b3b835d398a37559d70 | 1 + .../fd/2/a939f677cc9e44e4a8a5c3ad6048e3de | 1 + common_ui/Index.ets | 4 +- 16 files changed, 266 insertions(+), 81 deletions(-) create mode 100644 app/src/main/ets/pages/PhotoPage.ets create mode 100644 build_script/sign/HM4Demo.cer create mode 100644 build_script/sign/HM4Demo.csr create mode 100644 build_script/sign/HM4Demo.p12 create mode 100644 build_script/sign/HM4Demo.p7b create mode 100644 build_script/sign/material/ac/21fb7147ec9140d8a2166a5957d70883 create mode 100644 build_script/sign/material/ce/7e38397df3804a04b190233b5e9e6a6b create mode 100644 build_script/sign/material/fd/0/241943518c844e15ba9133307f98db89 create mode 100644 build_script/sign/material/fd/1/74287bfdaa724b3b835d398a37559d70 create mode 100644 build_script/sign/material/fd/2/a939f677cc9e44e4a8a5c3ad6048e3de diff --git a/app/src/main/ets/pages/Index.ets b/app/src/main/ets/pages/Index.ets index 95a393f..081cc87 100644 --- a/app/src/main/ets/pages/Index.ets +++ b/app/src/main/ets/pages/Index.ets @@ -1,8 +1,28 @@ import { ComponentConst, ScreenUtil, TitleBar } from '@devwiki/common_ui'; -import { TitleBarMenuType } from '@devwiki/common_ui/src/main/ets/component/TitleBar'; +import web_webview from '@ohos.web.webview'; +import { TitleBarMenuType } from '@devwiki/common_ui'; import { WebPage } from './WebPage'; -import { window } from '@kit.ArkUI'; +import { router, window } from '@kit.ArkUI'; import { WebPageDialog } from './WebPageDialog' +import promptAction from '@ohos.promptAction'; +import { BusinessError } from '@ohos.base'; + +@CustomDialog +struct WebViewDialog { + webUrl: string = "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password" + private webviewController: web_webview.WebviewController = new web_webview.WebviewController(); + dialogController: CustomDialogController; + @StorageLink(ScreenUtil.isPortraitKey)isPortrait: boolean = true; + + build() { + Row() { + Web({ src: this.webUrl, controller: this.webviewController }) + .javaScriptAccess(true)// 允许使用 js + .width('100%') + .height('100%'); + }.height(this.isPortrait ? '95%' : '90%').width(this.isPortrait ? '100%' : '50%') + } +} @Entry @Component @@ -11,7 +31,7 @@ struct Index { @State title: string = "Home"; dialogController: CustomDialogController = new CustomDialogController({ - builder: WebPageDialog(), + builder: WebViewDialog(), alignment: DialogAlignment.BottomEnd, customStyle: true }) @@ -24,75 +44,70 @@ struct Index { ScreenUtil.getInstance().setPreferredOrientation(window.Orientation.AUTO_ROTATION); } - onTitleBarLeftClick(_event: ClickEvent) { - this.getUIContext().getRouter().back(); + pageTransition() { + // 定义页面进入时的效果,无论页面栈发生push还是pop操作均可生效 + PageTransitionEnter({ type: RouteType.None, duration: 100 }).opacity(1) + // 定义页面退出时的效果,无论页面栈发生push还是pop操作均可生效 + PageTransitionExit({ type: RouteType.None, duration: 100 }).opacity(0) } - onButtonClicked() { - this.dialogController.open(); - getContext(this).filesDir + onBackPress(): boolean | void { + // 弹出自定义的询问框 + promptAction.showDialog({ + message: '确定要退出吗?', + buttons: [ + { + text: '取消', + color: '#FF0000' + }, + { + text: '确认', + color: '#0099FF' + } + ] + }).then((result: promptAction.ShowDialogSuccessResponse) => { + if (result.index === 0) { + // 用户点击了“取消”按钮 + console.info('User canceled the operation.'); + } else if (result.index === 1) { + // 用户点击了“确认”按钮 + console.info('User confirmed the operation.'); + // 调用router.back()方法,返回上一个页面 + router.back(); + } + }).catch((err: Error) => { + let message = (err as BusinessError).message + let code = (err as BusinessError).code + console.error(`Invoke showDialog failed, code is ${code}, message is ${message}`); + }) + return true; + } - // router.pushUrl({ - // // 两种方式都可以加载Page, 一个是和 resources/base/profile/main_pages.ets中的配置相同 - // // 一个是绝对路径 - // // url: "pages/WebPage", - // url: PageRouter.WebPage - // }, router.RouterMode.Single); + async onTitleBarLeftClick(_event: ClickEvent) { + this.onBackPress; } build() { Column() { - Row() {}.width('100%') - .backgroundColor('#F08080') - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) - RelativeContainer() { - TitleBar({ - title: this.title, - onLeftClicked: this.onTitleBarLeftClick, - rightMenuType: TitleBarMenuType.None - }) - .width('100%') - .alignRules({ - top: { anchor: ComponentConst.ContainerId, align: VerticalAlign.Top }, - left: { anchor: ComponentConst.ContainerId, align: HorizontalAlign.Start }, - }).id("title_bar"); //必须要设置id 否则不显示 + TitleBar({ + title: this.title, + onLeftClicked: ()=> {this.onBackPress()}, + rightMenuType: TitleBarMenuType.None + }).width('100%') - Divider().alignRules({ - top: { anchor: "title_bar", align: VerticalAlign.Bottom }, - left: { anchor: ComponentConst.ContainerId, align: HorizontalAlign.Start } - }).width('100%').id("divider") //必须要设置id 否则不显示 + Column() { + Row() { + Button("WebDialog").width(100).height('100%').type(ButtonType.Normal) + .onClick(() => { this.dialogController.open() }); - Grid() { - GridItem() { - Button("Layout").type(ButtonType.Capsule).height(32).width(80); - }.rowStart(0).rowEnd(0).columnStart(0).columnEnd(0) + Button("Layout").width(100).height('100%').type(ButtonType.Normal).onClick(() =>{ + router.pushUrl({url: "pages/layout/LinearLayoutPage"}); + }); - GridItem() { - Button("WebPage").type(ButtonType.Capsule).height(32).width(80) - .onClick(() => { this.dialogController.open() }); - }.rowStart(0).rowEnd(0).columnStart(1).columnEnd(1) + Button().width(100).height('100%').type(ButtonType.Normal); - GridItem() { - Button("3").type(ButtonType.Capsule).height(32).width(80); - }.rowStart(0).rowEnd(0).columnStart(2).columnEnd(2) - - GridItem() { - Button("4").type(ButtonType.Capsule).height(32).width(80); - }.rowStart(0).rowEnd(0).columnStart(3).columnEnd(3) - - GridItem() { - Button("1").type(ButtonType.Capsule).height(32).width(80); - }.rowStart(1).rowEnd(1).columnStart(0).columnEnd(0) - } - .width('100%') - .columnsTemplate('1fr 1fr 1fr 1fr').columnsGap(8) - .rowsTemplate('repeat(auto-fill, 36)').rowsGap(8) - .alignRules({ - top: { anchor: "divider", align: VerticalAlign.Bottom }, - left: { anchor: ComponentConst.ContainerId, align: HorizontalAlign.Start }, - bottom: { anchor: ComponentConst.ContainerId, align: VerticalAlign.Bottom } - }).id("host_web") //必须要设置id 否则不显示 - }.width('100%').height('100%') - }.width('100%').height('100%').backgroundImage($r("app.media.bg_sky")).backgroundImageSize(ImageSize.Cover) + }.width('100%').height(48).justifyContent(FlexAlign.SpaceEvenly) + }.justifyContent(FlexAlign.Center).width('100%') + }.width('100%').height('100%') } } \ No newline at end of file diff --git a/app/src/main/ets/pages/PhotoPage.ets b/app/src/main/ets/pages/PhotoPage.ets new file mode 100644 index 0000000..2b646fa --- /dev/null +++ b/app/src/main/ets/pages/PhotoPage.ets @@ -0,0 +1,64 @@ +import { TitleBar } from '@devwiki/common_ui/Index'; +import picker from '@ohos.file.picker'; +import { BusinessError } from '@kit.BasicServicesKit'; +import fs, { ReadOptions } from '@ohos.file.fs'; +import common from '@ohos.app.ability.common'; +import buffer from '@ohos.buffer'; + +@Entry +@Component +struct PhotoPage { + + build() { + Column() { + TitleBar({ + title: "PhotoPage", + onLeftClicked: ()=> { + this.getUIContext().getRouter().back(); + }}).width('100%') + Divider(); + Button("Open").onClick(() =>{ + + }).margin(5); + + }.width('100%').height('100%') + } + + openPhotoSelector() { + let selectOptions = new picker.PhotoSelectOptions(); + selectOptions.maxSelectNumber = 1; + let viewPicker = new picker.PhotoViewPicker() + viewPicker.select(selectOptions).then((result) => { + let uri = result.photoUris; + let file = fs.openSync(uri[0], fs.OpenMode.READ_ONLY); + // 打开文件流 + let inputStream = fs.createStreamSync(uri[0], 'r+'); + let outputStream = buffer.alloc(fs.statSync(uri[0]).size); + // 以流的形式读取源文件内容并写入目的文件 + let bufSize = 4096; + let readSize = 0; + let buf = new ArrayBuffer(bufSize); + let readOptions: ReadOptions = { + offset: readSize, + length: bufSize + }; + new String(buf); + let readLen = inputStream.readSync(buf, readOptions); + readSize += readLen; + while (readLen > 0) { + for (let index = 0; index < readSize; index++) { + outputStream[readSize] = buf.slice(index); + } + readOptions.offset = readSize; + readLen = inputStream.readSync(buf, readOptions); + readSize += readLen; + } + // 关闭文件流 + inputStream.closeSync(); + + console.info('PhotoViewPicker.select to file succeed and uri is:' + uri); + }).catch((err: BusinessError) => { + console.error(`Invoke documentViewPicker.select failed, code is ${err.code}, message is ${err.message}`); + }) + } +} \ No newline at end of file diff --git a/app/src/main/ets/pages/WebPage.ets b/app/src/main/ets/pages/WebPage.ets index 895121e..010cabf 100644 --- a/app/src/main/ets/pages/WebPage.ets +++ b/app/src/main/ets/pages/WebPage.ets @@ -1,5 +1,4 @@ -import { WebView, ComponentConst, CommonRes, TitleBar, WebViewController, ScreenUtil } from '@devwiki/common_ui'; -import { WebViewParam } from '@devwiki/common_ui/src/main/ets/component/web/WebView'; +import { WebView, WebViewParam, ComponentConst, CommonRes, TitleBar, WebViewController, ScreenUtil } from '@devwiki/common_ui'; @Entry @Component diff --git a/app/src/main/ets/pages/layout/LinearLayoutPage.ets b/app/src/main/ets/pages/layout/LinearLayoutPage.ets index 1b4d4e5..142c12c 100644 --- a/app/src/main/ets/pages/layout/LinearLayoutPage.ets +++ b/app/src/main/ets/pages/layout/LinearLayoutPage.ets @@ -3,21 +3,51 @@ @Component struct LinearLayoutPage { - @State space: number = 10; + columnMargin:number = 8 + columnBgColor:string = '#26c6da' + @State columnJustifyContent: FlexAlign = FlexAlign.SpaceEvenly; + @State columnAlignItems :HorizontalAlign = HorizontalAlign.Center; + + pageTransition() { + // 定义页面进入时的效果,无论页面栈发生push还是pop操作均可生效 + PageTransitionEnter({ type: RouteType.None, duration: 200 }).opacity(1) + // 定义页面退出时的效果,无论页面栈发生push还是pop操作均可生效 + PageTransitionExit({ type: RouteType.None, duration: 200 }).opacity(0) + } build() { - Column({ space: '5' }) { - Text(`space:${this.space}`) - Row({ space: this.space}){ - Column().height('100%').width('25%').backgroundColor("#ff5577") - Column().height('100%').width('25%').backgroundColor("#ff5577") - Column().height('100%').width('20%').backgroundColor("#ff5577") - Column().height('100%').width('20%').backgroundColor("#ff5577") - }.width('90%').height('10%').backgroundColor("#11ff4455") - Row().width('90%').height('10%').backgroundColor("#ff4455") - Row().width('90%').height('10%').backgroundColor("#ff4455") - Row().width('90%').height('10%').backgroundColor("#ff4455") - Row().width('90%').height('10%').backgroundColor("#ff4455") - }.width('100%') + // Column的子元素垂直排列, 即1列N行 + Column() { + Row() { + Text(`Column的子元素垂直排列, 即1列N行, 当前为第1行 \n Column的margin:${this.columnMargin}`) + .width('100%') + }.width('80%').height(96).alignItems(VerticalAlign.Center).justifyContent(FlexAlign.SpaceEvenly) + .borderWidth(1) + + Column() { + Text("当前为第2行,不同的justifyContent会影响行之间的间隔"); + Button("切换justifyContent").onClick((event: ClickEvent) => { + if (this.columnJustifyContent < FlexAlign.SpaceEvenly) { + this.columnJustifyContent++; + } else { + this.columnJustifyContent = 0; + } + }) + }.width('80%').height(96).alignItems(HorizontalAlign.Center).justifyContent(FlexAlign.SpaceEvenly) + .borderWidth(1) + + Column() { + Text("当前为第3行, 不同的alignItems会影响在水平方向上的对其方式"); + Button("切换alignItems").onClick((event: ClickEvent) => { + if (this.columnAlignItems < HorizontalAlign.End) { + this.columnAlignItems++ + } else { + this.columnAlignItems = 0; + } + }) + }.width('80%').height(96).alignItems(HorizontalAlign.Center).justifyContent(FlexAlign.SpaceEvenly) + .borderWidth(1) + }.height('100%').width('100%').alignItems(this.columnAlignItems).justifyContent(this.columnJustifyContent) + .backgroundColor('#26c6da') } } \ No newline at end of file diff --git a/app/src/main/resources/base/profile/main_pages.json b/app/src/main/resources/base/profile/main_pages.json index eacfa98..cb08647 100644 --- a/app/src/main/resources/base/profile/main_pages.json +++ b/app/src/main/resources/base/profile/main_pages.json @@ -1,6 +1,7 @@ { "src": [ "pages/Index", - "pages/WebPage" + "pages/WebPage", + "pages/layout/LinearLayoutPage" ] } diff --git a/build-profile.json5 b/build-profile.json5 index b4bc25e..e7164ce 100644 --- a/build-profile.json5 +++ b/build-profile.json5 @@ -3,6 +3,19 @@ "app": { //签名配置 "signingConfigs": [ + { + "name": "default", + "type": "HarmonyOS", + "material": { + "certpath": "build_script/sign/HM4Demo.cer", + "storePassword": "0000001B9C6223E8C618FEFD3D871B066F744A4E9C03C09D8ED7E7C7ECE6C1F53A54A6748EC341B960E492", + "keyAlias": "debugKey", + "keyPassword": "0000001B63515E7120BC166D17A66B98A717DE9B06276194E4317B5317F70EA2835B8AD262B9DD4FD6AB55", + "profile": "build_script/sign/HM4Demo.p7b", + "signAlg": "SHA256withECDSA", + "storeFile": "build_script/sign/HM4Demo.p12" + } + } ], //产品配置 "products": [ diff --git a/build_script/sign/HM4Demo.cer b/build_script/sign/HM4Demo.cer new file mode 100644 index 0000000..2334a18 --- /dev/null +++ b/build_script/sign/HM4Demo.cer @@ -0,0 +1,50 @@ +-----BEGIN CERTIFICATE----- +MIICGjCCAaGgAwIBAgIIShhpn519jNAwCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC +Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE +AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDMxNjAzMDQzOVoXDTQ5MDMx +NjAzMDQzOVowUzELMAkGA1UEBhMCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE +CwwKSHVhd2VpIENCRzEeMBwGA1UEAwwVSHVhd2VpIENCRyBSb290IENBIEcyMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEWidkGnDSOw3/HE2y2GHl+fpWBIa5S+IlnNrs +GUvwC1I2QWvtqCHWmwFlFK95zKXiM8s9yV3VVXh7ivN8ZJO3SC5N1TCrvB2lpHMB +wcz4DA0kgHCMm/wDec6kOHx1xvCRo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUo45a9Vq8cYwqaiVyfkiS4pLcIAAwCgYIKoZI +zj0EAwMDZwAwZAIwMypeB7P0IbY7c6gpWcClhRznOJFj8uavrNu2PIoz9KIqr3jn +BlBHJs0myI7ntYpEAjBbm8eDMZY5zq5iMZUC6H7UzYSix4Uy1YlsLVV738PtKP9h +FTjgDHctXJlC5L7+ZDY= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIDATCCAoigAwIBAgIIXmuDXbWpOB8wCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC +Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE +AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDcwOTAyMDQyNFoXDTMwMDcw +NzAyMDQyNFowYjELMAkGA1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE +CwwKSHVhd2VpIENCRzEtMCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVs +YXRpb25zIENBIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE65LdoIZh1hlpZ2gP +bJ6gPhHsvYSRe22KETgdqeVeYnrbRHI9wsPT6RGYS+pU4mPl6wxzgDMqN6SY/BoZ +luhkE1PzaHoPoNIWIq0O33hpyKyyYwAacIUEjYurkw1E9r9no4IBGDCCARQwHwYD +VR0jBBgwFoAUo45a9Vq8cYwqaiVyfkiS4pLcIAAwHQYDVR0OBBYEFNtek7Ij6NDk +/nF6Zumkc0dbf/NeMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEGCCsGAQUFBwIBFiVo +dHRwOi8vY3BraS1jYXdlYi5odWF3ZWkuY29tL2Nwa2kvY3BzMBIGA1UdEwEB/wQI +MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMGYGA1UdHwRfMF0wW6BZoFeGVWh0dHA6 +Ly9jcGtpLWNhd2ViLmh1YXdlaS5jb20vY3BraS9zZXJ2bGV0L2NybEZpbGVEb3du +LmNybD9jZXJ0eXBlPTEwJi9yb290X2cyX2NybC5jcmwwCgYIKoZIzj0EAwMDZwAw +ZAIwWO1X5q2MdfpR1Q237GpUHGbL1C13rGyFg2p3AYo44FpZ2/A9ss0wOHKM4KDl +ZPqdAjBLkf8NPZy7KVog98+iCTLq35DJ2ZVxkCxknA9YhiHVyXf4HPm4JlT7rW7o +Q+FzM3c= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICxDCCAkugAwIBAgIOCfqy0519H29B/WqaHGQwCgYIKoZIzj0EAwMwYjELMAkG +A1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEt +MCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVsYXRpb25zIENBIEcyMB4X +DTI0MDQwNzEyMjAyNFoXDTI1MDQwNzEyMjAyNFowdTELMAkGA1UEBhMCQ04xEjAQ +BgNVBAoMCeW8oOS6muW3njEcMBoGA1UECwwTMTM3NDY1NTI5MTc3NzQwNjA4MTE0 +MDIGA1UEAwwr5byg5Lqa5beeKDEzNzQ2NTUyOTE3Nzc0MDYwODEpXCxEZXZlbG9w +bWVudDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCV0e7DEk8fQHqVIJ+R6PvbJ +3mVFomYb96YvmrERrcM4au/yGtFdw5lWyrXxnECaRSgOAsKv9HuCbUl3OYv4XKmj +gdEwgc4wDAYDVR0TAQH/BAIwADBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vaDVo +b3N0aW5nLWRyY24uZGJhbmtjZG4uY24vY2NoNS9jcmwvaGRyY2FnMi9IdWF3ZWlD +QkdIRFJHMmNybC5jcmwwHwYDVR0jBBgwFoAU216TsiPo0OT+cXpm6aRzR1t/814w +HQYDVR0OBBYEFBPcTdaYFqIJtv+sLVTRzlwzs6mqMA4GA1UdDwEB/wQEAwIHgDAT +BgNVHSUEDDAKBggrBgEFBQcDAzAKBggqhkjOPQQDAwNnADBkAjBGziW/rzZFa4z2 +sPEI5AYrCWV87jwO3aJjQMDcmysqFd446ICI4FDjGqhplj2FCuQCMCk2jQPIfxI+ +j2vUYfzp7SC0J/lURWksxfKawdAQMrotqnHRvg+ZMSg5aNjlTnfApQ== +-----END CERTIFICATE----- diff --git a/build_script/sign/HM4Demo.csr b/build_script/sign/HM4Demo.csr new file mode 100644 index 0000000..cba5e62 --- /dev/null +++ b/build_script/sign/HM4Demo.csr @@ -0,0 +1,9 @@ +-----BEGIN NEW CERTIFICATE REQUEST----- +MIIBNTCB3AIBADBKMQkwBwYDVQQGEwAxCTAHBgNVBAgTADEJMAcGA1UEBxMAMQkw +BwYDVQQKEwAxCTAHBgNVBAsTADERMA8GA1UEAxMIRGVidWdLZXkwWTATBgcqhkjO +PQIBBggqhkjOPQMBBwNCAAQldHuwxJPH0B6lSCfkej72yd5lRaJmG/emL5qxEa3D +OGrv8hrRXcOZVsq18ZxAmkUoDgLCr/R7gm1JdzmL+FypoDAwLgYJKoZIhvcNAQkO +MSEwHzAdBgNVHQ4EFgQUE9xN1pgWogm2/6wtVNHOXDOzqaowCgYIKoZIzj0EAwID +SAAwRQIhAL/kaUfXrrPcLs3wtZwMUnTfOV7m60SyTds5jyziXfhJAiBV0ONZyq8o +JInBx6WW2upR12Hdtx3qYylrQXhoP95VwQ== +-----END NEW CERTIFICATE REQUEST----- diff --git a/build_script/sign/HM4Demo.p12 b/build_script/sign/HM4Demo.p12 new file mode 100644 index 0000000000000000000000000000000000000000..ddc26975c80d6e83d0ffeb86d15395cfa0b70245 GIT binary patch literal 1128 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 G&73AfAQ?sg literal 0 HcmV?d00001 diff --git a/build_script/sign/material/fd/0/241943518c844e15ba9133307f98db89 b/build_script/sign/material/fd/0/241943518c844e15ba9133307f98db89 new file mode 100644 index 0000000..f7f27fd --- /dev/null +++ b/build_script/sign/material/fd/0/241943518c844e15ba9133307f98db89 @@ -0,0 +1 @@ +N(a=]}4 \ No newline at end of file diff --git a/build_script/sign/material/fd/1/74287bfdaa724b3b835d398a37559d70 b/build_script/sign/material/fd/1/74287bfdaa724b3b835d398a37559d70 new file mode 100644 index 0000000..a479691 --- /dev/null +++ b/build_script/sign/material/fd/1/74287bfdaa724b3b835d398a37559d70 @@ -0,0 +1 @@ +WuQө]CzwHH \ No newline at end of file diff --git a/build_script/sign/material/fd/2/a939f677cc9e44e4a8a5c3ad6048e3de b/build_script/sign/material/fd/2/a939f677cc9e44e4a8a5c3ad6048e3de new file mode 100644 index 0000000..0ef3017 --- /dev/null +++ b/build_script/sign/material/fd/2/a939f677cc9e44e4a8a5c3ad6048e3de @@ -0,0 +1 @@ +HعmKdғ \ No newline at end of file diff --git a/common_ui/Index.ets b/common_ui/Index.ets index efaa122..c86d440 100644 --- a/common_ui/Index.ets +++ b/common_ui/Index.ets @@ -1,8 +1,8 @@ -export { TitleBar } from './src/main/ets/component/TitleBar' +export { TitleBar, TitleBarMenuType } from './src/main/ets/component/TitleBar' export { ComponentConst } from './src/main/ets/component/ComponentConst' export { WebViewEventKey } from './src/main/ets/event/EventKey' export { Emitter } from './src/main/ets/event/Emitter' -export { WebView, WebViewController } from './src/main/ets/component/web/WebView' +export { WebView, WebViewController, WebViewParam } from './src/main/ets/component/web/WebView' export { CommonRes } from './src/main/ets/utils/CommonRes' export { ScreenUtil } from './src/main/ets/utils/ScreenUtil'