配景:
前几篇学习了元服务,反面几期就让我们开发简单的元服务吧,内里丰富的内容大家自己加,本期案例 仅供参考
先上本期结果图 ,内里图片自行更换
结果图1完整代码案比方下:
- import { authentication } from '@kit.AccountKit';
- import { BusinessError } from '@kit.BasicServicesKit';
- import { hilog } from '@kit.PerformanceAnalysisKit';
- @Entry
- @Component
- struct Index {
- @State message: string = 'Hello World';
- build() {
- Column() {
- Row() {
- Image($r('app.media.dian')).width(55)
- Text($r('app.string.EntryAbility_label'))
- .fontWeight(FontWeight.Bold)
- .layoutWeight(1)
- .fontSize(22)
- .fontColor("#222222")
- .margin({ top: 20, bottom: 20 })
- Button('发消息').fontSize(12).margin({ right: 12 })
- }.width('100%').backgroundColor(Color.White).borderRadius(10)
- Text('68%').fontSize(22).fontWeight(FontWeight.Bold)
- .fontColor("#222222")
- .margin({ top: 8 })
- Text('预计继续使用 54 小时 24 分钟').fontSize(12)
- .fontColor("#5F6062")
- .margin({ top: 8 })
- Text('服务卡')
- .fontSize(20)
- .fontColor("#222222")
- .margin({ top: 20, bottom: 20 })
- Column() {
- Row() {
- Image($r('app.media.dian')).width(35)
- Text('设备电量')
- .fontSize(18)
- .fontColor("#222222")
- .margin({ left: 10 })
- }.width('100%').margin({ left: 8, top: 20 })
- Row() {
- Stack() {
- Progress({
- value: 8800,
- total: 10000,
- type: ProgressType.Ring
- })
- .width(64)
- .color("#4EBB53")
- .style({ strokeWidth: 6 })
- .backgroundColor('#EDF3FD')
- Image($r('app.media.zuoer')).width(20)
- Text('88%').fontColor(Color.Black).fontSize(18).margin({ top: 100 })
- }.margin({ left: 16 })
- Stack() {
- Progress({
- value: 4000,
- total: 10000,
- type: ProgressType.Ring
- })
- .width(64)
- .color("#4EBB53")
- .style({ strokeWidth: 6 })
- .backgroundColor('#EDF3FD')
- Image($r('app.media.youer')).width(20)
- Text('40%').fontColor(Color.Black).fontSize(18).margin({ top: 100 })
- }.margin({ left: 16 })
- Stack() {
- Progress({
- value: 6700,
- total: 10000,
- type: ProgressType.Ring
- })
- .width(64)
- .color("#4EBB53")
- .style({ strokeWidth: 6 })
- .backgroundColor('#EDF3FD')
- Image($r('app.media.shojji')).width(25)
- Text('67%').fontColor(Color.Black).fontSize(18).margin({ top: 100 })
- }.margin({ left: 16 })
- Stack() {
- Progress({
- value: 6800,
- total: 10000,
- type: ProgressType.Ring
- })
- .width(64)
- .color("#F1F1F1")
- .style({ strokeWidth: 6 })
- .backgroundColor('#F1F1F1')
- Text('添加设备').fontColor(Color.Black).fontSize(14).margin({ top: 105 })
- }.margin({ left: 16 })
- }.width('100%')
- }.width('100%').height(200).backgroundColor(Color.White)
- .borderRadius(10)
- Row() {
- Text().backgroundColor('#4EBB53').width(40).height(40).borderRadius(20)
- Text('显示电量百分比').fontColor(Color.Black).fontSize(22).margin({ left: 5 }).layoutWeight(1)
- Toggle({ type: ToggleType.Switch, isOn: true })
- }
- .width('100%')
- .height(80)
- .margin({ top: 20 })
- .backgroundColor(Color.White)
- .borderRadius(10)
- .padding(16)
- Row() {
- Text().backgroundColor(Color.Blue).width(40).height(40).borderRadius(20)
- Text('更多电池设置').fontColor(Color.Black).fontSize(22).margin({ left: 5 }).layoutWeight(1)
- Text('>').fontColor(Color.Black).fontSize(22)
- }
- .width('100%')
- .height(80)
- .margin({ top: 20 })
- .backgroundColor(Color.White)
- .borderRadius(10)
- .padding(16)
- }
- .height('100%')
- .width('100%')
- .padding(16)
- .backgroundColor('#F2F3F5')
- .margin({ top: 60 })
- .alignItems(HorizontalAlign.Start)
- }
- aboutToAppear() {
- hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
- this.loginWithHuaweiID();
- }
- /**
- * Sample code for using HUAWEI ID to log in to atomic service.
- * According to the Atomic Service Review Guide, when a atomic service has an account system,
- * the option to log in with a HUAWEI ID must be provided.
- * The following presets the atomic service to use the HUAWEI ID silent login function.
- * To enable the atomic service to log in successfully using the HUAWEI ID, please refer
- * to the HarmonyOS HUAWEI ID Access Guide to configure the client ID and fingerprint certificate.
- */
- private loginWithHuaweiID() {
- // Create a login request and set parameters
- let loginRequest = new authentication.HuaweiIDProvider().createLoginWithHuaweiIDRequest();
- // Whether to forcibly launch the HUAWEI ID login page when the user is not logged in with the HUAWEI ID
- loginRequest.forceLogin = false;
- // Execute login request
- let controller = new authentication.AuthenticationController();
- controller.executeRequest(loginRequest).then((data) => {
- let loginWithHuaweiIDResponse = data as authentication.LoginWithHuaweiIDResponse;
- let authCode = loginWithHuaweiIDResponse.data?.authorizationCode;
- // Send authCode to the backend in exchange for unionID, session
- }).catch((error: BusinessError) => {
- hilog.error(0x0000, 'testTag', 'error: %{public}s', JSON.stringify(error));
- if (error.code == authentication.AuthenticationErrorCode.ACCOUNT_NOT_LOGGED_IN) {
- // HUAWEI ID is not logged in, it is recommended to jump to the login guide page
- }
- });
- }
- }
复制代码 迩来文章>>>>>>>>>>>
HarmonyOS NEXT实战:元服务与应用 APP 发布应用市场的详细步调与流程
若本文对您稍有帮助,诚望您不吝点赞,多谢。
有兴趣的同砚可以点击查看源码
- gitee:https://gitee.com/jiaojiaoone/explore-harmony-next/tree/case%2Fwanandroid/
- github:https://github.com/JasonYinH/ExploreHarmonyNext.git
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |