日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmonyApp啟動(dòng)頁(yè)后記

ITMING ? 來(lái)源:ITMING ? 作者:ITMING ? 2023-03-03 16:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 回顧

通過(guò)DevEco Studio端云協(xié)同開(kāi)發(fā)OpenHarmony/HarmonyOS應(yīng)用程序(以下簡(jiǎn)稱(chēng)應(yīng)用)集成AppGallery Connect(以下簡(jiǎn)稱(chēng)AGC)平臺(tái)云函數(shù)、云數(shù)據(jù)庫(kù)、云存儲(chǔ)三篇文章筆者從創(chuàng)建端云協(xié)同應(yīng)用程序開(kāi)始,逐步對(duì)云函數(shù)、云數(shù)據(jù)庫(kù)、云存儲(chǔ)簡(jiǎn)單的數(shù)據(jù)讀取做了簡(jiǎn)單的介紹。通過(guò)使用云數(shù)據(jù)庫(kù)、云存儲(chǔ)相結(jié)合的方式使應(yīng)用的啟動(dòng)頁(yè)能夠動(dòng)態(tài)化,即可以在不更新應(yīng)用的情況下更改啟動(dòng)頁(yè)的參數(shù)已達(dá)到啟動(dòng)頁(yè)的動(dòng)態(tài)化。

2 問(wèn)題及解決方案

問(wèn)題: 由于啟動(dòng)頁(yè)參數(shù)來(lái)源于云數(shù)據(jù)庫(kù)、云存儲(chǔ),啟動(dòng)頁(yè)數(shù)據(jù)渲染前會(huì)受網(wǎng)絡(luò)影響出現(xiàn)白屏。

解決方案: 為啟動(dòng)頁(yè)數(shù)據(jù)單獨(dú)封裝獲取方法,在啟動(dòng)頁(yè)新增狀態(tài)值,數(shù)據(jù)未加載完成后顯示當(dāng)前應(yīng)用的icon圖標(biāo),數(shù)據(jù)加載完成后渲染實(shí)際獲取到的數(shù)據(jù)。

注: 若讀者有其他的處理方法可與筆者共同探討一下。

3 優(yōu)化調(diào)用方法

使用async將函數(shù)異步化,使用await獲取Promise的值。

3.1 云數(shù)據(jù)庫(kù)獲取數(shù)據(jù)方法異步化

每次使用存儲(chǔ)區(qū)都要在使用完成后釋放,新增關(guān)閉存儲(chǔ)區(qū)方法。

// service/CloudDBService.ts
// @ts-ignore
import * as schema from './app-schema.json';
import { splash } from './splash';
import {
    AGConnectCloudDB,
    CloudDBZoneConfig,
    CloudDBZone,
    CloudDBZoneQuery
} from '@hw-agconnect/database-ohos';

import { AGCRoutePolicy } from '@hw-agconnect/core-ohos';

import { getAGConnect } from './AgcConfig';

export class CloudDBService {

    private static readonly ZONE_NAME = "cloudDBZoneSplash";
    private static cloudDB: AGConnectCloudDB;
    private static cloudDBZone: CloudDBZone;
    private static isInit: boolean;

    public static async init(context: any): Promise<boolean> {
        if (this.isInit) {
            return;
        }
        try {
            // 初始化agc
            getAGConnect(context);
            // 初始化Cloud DB
            await AGConnectCloudDB.initialize(context);
            // 獲取對(duì)應(yīng)數(shù)據(jù)處理位置的CloudDB實(shí)例
            this.cloudDB = await AGConnectCloudDB.getInstance(AGCRoutePolicy.CHINA);
            // 創(chuàng)建對(duì)象類(lèi)型
            this.cloudDB.createObjectType(schema);
            // 打開(kāi)存儲(chǔ)區(qū)
            await this.openZone(this.ZONE_NAME);
            this.isInit = true;
        } catch (err) {
            console.error(JSON.stringify(err))
        }
        return Promise.resolve(this.isInit);
    }

    // 打開(kāi)存儲(chǔ)區(qū)
    private static async openZone(zoneName: string): Promise

3.2 云存儲(chǔ)獲取數(shù)據(jù)方法異步化

// services/cloudstorage/CloudStorageService.ts
import agconnect from '@hw-agconnect/api-ohos';
import "@hw-agconnect/cloudstorage-ohos";

import { getAGConnect } from '../AgcConfig';

export class CloudStorageService {

    public static async init(context: any, path: string): Promise<string> {
        try {
            getAGConnect(context);
            // 初始化默認(rèn)實(shí)例
            const storage = agconnect.cloudStorage();
            // 創(chuàng)建需要下載文件的引用
            const storageReference = await storage.storageReference();
            var reference = await storageReference.child(path);
            return reference.getDownloadURL();
        } catch (err) {
            console.error(JSON.stringify(err));
        }
    }
}

4 為啟動(dòng)頁(yè)數(shù)據(jù)獲取封裝專(zhuān)用方法

可以將一些處理邏輯放在該方法中處理。

// services/SplashService.ts
import { splash } from './splash';
import { CloudDBService } from '../services/CloudDBService';
import { CloudStorageService } from '../services/cloudstorage/CloudStorageService';

export class SplashService {

    public static async querySplash(context: any): Promise

5 改寫(xiě)啟動(dòng)頁(yè)

啟動(dòng)頁(yè)新增狀態(tài)碼,用于數(shù)據(jù)未加載完成呈現(xiàn)給用戶(hù)的顯示界面,規(guī)避數(shù)據(jù)未獲取導(dǎo)致的白屏現(xiàn)象。

@State isSkip: boolean = false;

aboutToAppear()方法中執(zhí)行獲取啟動(dòng)頁(yè)數(shù)據(jù)的方法。

aboutToAppear() {
    this.isSkip = false;
    SplashService.querySplash(getContext(this)).then((ret) => {
      this.isSkip = true;
      this.result = ret;
    })
  }

頁(yè)面中使用if(){}else{}條件語(yǔ)句判斷渲染的組件,從而規(guī)避數(shù)據(jù)請(qǐng)求時(shí)間導(dǎo)致的白屏。

if (this.isSkip) {
  SplashPage({ mSplash: {
    timer: this.result.timer,
    isLogo: this.result.isLogo,
    backgroundImg: this.result.backgroundImg,
    companyName: this.result.companyName,
    mFontColor: this.result.mFontColor
  }, skip: this.onSkip })
} else {
  Column() {
    Image($r('app.media.icon')).objectFit(ImageFit.None)
  }
  .width('100%').height('100%')
}

通過(guò)更改AGC平臺(tái)云數(shù)據(jù)庫(kù)中啟動(dòng)頁(yè)數(shù)據(jù)狀態(tài),可以實(shí)現(xiàn)下次啟動(dòng)應(yīng)用程序,啟動(dòng)頁(yè)呈現(xiàn)不同內(nèi)容。使用場(chǎng)景如新聞?lì)怉pp可以在啟動(dòng)頁(yè)呈現(xiàn)一條配備圖片的熱文;常規(guī)App可以在啟動(dòng)頁(yè)呈現(xiàn)一條經(jīng)典語(yǔ)錄;實(shí)現(xiàn)不同節(jié)日在啟動(dòng)頁(yè)呈現(xiàn)問(wèn)候信息。

7 后記

本文所記為之前文章的總結(jié),針對(duì)獲取AGC平臺(tái)各項(xiàng)服務(wù)的數(shù)據(jù),可直接調(diào)用對(duì)應(yīng)的方法即可。若出現(xiàn)復(fù)雜的情況,如后面筆者將實(shí)現(xiàn)認(rèn)證服務(wù)登錄,并將用戶(hù)信息存儲(chǔ)到云數(shù)據(jù)庫(kù)中,可以結(jié)合云函數(shù),在用戶(hù)登錄的時(shí)候,直接調(diào)用云函數(shù)去保存用戶(hù)信息,存儲(chǔ)方法可以通過(guò)云函數(shù)的AUTH觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)云數(shù)據(jù)庫(kù)中;再如用戶(hù)上傳圖片,生成縮略圖,也可以利用云函數(shù)將原圖和縮略圖一同保存到云存儲(chǔ)中。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2157

    瀏覽量

    36304
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3977

    瀏覽量

    21373
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    OpenHarmony 明星開(kāi)發(fā)板和應(yīng)用招募啟動(dòng),等你來(lái)!

    為助力企業(yè)和開(kāi)發(fā)者快速找到好用的開(kāi)發(fā)板和應(yīng)用,推動(dòng)OpenHarmony生態(tài)發(fā)展,現(xiàn)啟動(dòng)OpenHarmony 明星開(kāi)發(fā)板和應(yīng)用招募”評(píng)選活動(dòng)!本次活動(dòng)旨在為 OpenHarmony
    發(fā)表于 09-14 15:21

    #OpenHarmony 系統(tǒng)概述

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:39:20

    #OpenHarmony 鏡像燒錄

    OpenHarmony
    視美泰
    發(fā)布于 :2026年01月16日 09:42:36

    龍芯openharmony 【2】啟動(dòng)分析

    開(kāi)源項(xiàng)目見(jiàn):首發(fā)!成功移植OpenHarmony到龍芯開(kāi)發(fā)板,代碼開(kāi)源~1 啟動(dòng)文件和鏈接腳本龍芯開(kāi)發(fā)板的板級(jí)代碼位于:device\loongson\ls1c300b_hrst 文件夾其中,啟動(dòng)
    發(fā)表于 12-15 19:12

    如何導(dǎo)入OpenHarmony源碼

      Import Project適用于打開(kāi)DevEco Device Tool創(chuàng)建的工程項(xiàng)目和獲取的OpenHarmony源碼。如果是打開(kāi)OpenHarmony源碼,在打開(kāi)工程時(shí),點(diǎn)擊Import
    發(fā)表于 04-12 11:16

    《沉浸式剖析OpenHarmony源代碼》開(kāi)放100頁(yè)樣章

    《沉浸式剖析OpenHarmony源代碼》開(kāi)放100頁(yè)樣章梁開(kāi)祝2022.09.29這本書(shū)正在排版印刷中,不出意外的話(huà),在10月中下旬便可面市了。目前,此書(shū)的定價(jià)和訂購(gòu)鏈接暫時(shí)還沒(méi)有確定,待有確定
    發(fā)表于 09-29 11:33

    openharmony啟動(dòng)方式

    6 月 1 日,開(kāi)放原子開(kāi)源基金會(huì)( OpenAtom Foundation,以下簡(jiǎn)稱(chēng)“基金會(huì)”)正式發(fā)布 OpenAtom OpenHarmony(以下簡(jiǎn)稱(chēng)“OpenHarmony”)2.0 Canary。
    的頭像 發(fā)表于 06-22 10:59 ?2789次閱讀

    基于openharmony適配移植的導(dǎo)航頁(yè)控件

    項(xiàng)目介紹 項(xiàng)目名稱(chēng):GuideView 所屬系列:openharmony的第三方組件適配移植 功能:本系統(tǒng)能夠快速的為一個(gè)Ability里的任何一個(gè)Component控件創(chuàng)建一個(gè)遮罩式的導(dǎo)航頁(yè),并且
    發(fā)表于 04-07 10:07 ?2次下載

    2022 OpenHarmony組件大賽,共建開(kāi)源組件

    OpenHarmony官網(wǎng),點(diǎn)擊【互動(dòng)】,可在【活動(dòng)】頁(yè)面進(jìn)入大賽活動(dòng)頁(yè)。本次大賽旨在鼓勵(lì)開(kāi)發(fā)者積極參與OpenHarmony開(kāi)源組件生態(tài)建設(shè),貢獻(xiàn)優(yōu)秀開(kāi)源組件作品,與廣大OpenHarmon
    的頭像 發(fā)表于 04-26 17:31 ?2230次閱讀
    2022 <b class='flag-5'>OpenHarmony</b>組件大賽,共建開(kāi)源組件

    OpenHarmony產(chǎn)教融合協(xié)同育人項(xiàng)目正式啟動(dòng)

    正式啟動(dòng)OpenAtom OpenHarmony(以下簡(jiǎn)稱(chēng)“OpenHarmony”)產(chǎn)教融合協(xié)同育人項(xiàng)目,達(dá)成多家OpenHarmony校企合作項(xiàng)目簽約,標(biāo)志著開(kāi)源教育走進(jìn)湖南駛?cè)肟?/div>
    的頭像 發(fā)表于 09-28 11:40 ?1930次閱讀

    自定義HarmonyOS啟動(dòng)頁(yè)組件

    啟動(dòng)頁(yè)作為應(yīng)用程序首次出現(xiàn)的頁(yè)面,該頁(yè)面提供一些預(yù)加載數(shù)據(jù)的提前獲取,防止應(yīng)用程序出現(xiàn)白屏等異常,如是否第一次訪(fǎng)問(wèn)應(yīng)用程序并開(kāi)啟應(yīng)用歡迎頁(yè);判斷用戶(hù)登錄信息進(jìn)行頁(yè)面跳轉(zhuǎn);消息信息懶加載等。 常見(jiàn)
    的頭像 發(fā)表于 02-17 13:00 ?1286次閱讀
    自定義HarmonyOS<b class='flag-5'>啟動(dòng)</b><b class='flag-5'>頁(yè)</b>組件

    OpenHarmony競(jìng)賽訓(xùn)練營(yíng)正式啟動(dòng)

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開(kāi)源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony OpenAtom OpenHarmony(簡(jiǎn)稱(chēng)“OpenHarmony”)競(jìng)賽訓(xùn)練營(yíng)正式開(kāi)
    的頭像 發(fā)表于 10-07 21:10 ?1128次閱讀

    資訊速遞 | OpenHarmony競(jìng)賽訓(xùn)練營(yíng)重磅啟動(dòng),邀您共享OpenHarmony探索與創(chuàng)新之旅!

    OpenHarmony競(jìng)賽訓(xùn)練營(yíng)活動(dòng)旨在引導(dǎo)高校學(xué)生進(jìn)行OpenHarmony產(chǎn)學(xué)研用,培養(yǎng)更多應(yīng)用型人才和產(chǎn)業(yè)需求有效鏈接,吸引更多的高校師生參與到OpenHarmony的開(kāi)發(fā)和應(yīng)用中。本期
    的頭像 發(fā)表于 10-10 10:27 ?1420次閱讀
    資訊速遞 | <b class='flag-5'>OpenHarmony</b>競(jìng)賽訓(xùn)練營(yíng)重磅<b class='flag-5'>啟動(dòng)</b>,邀您共享<b class='flag-5'>OpenHarmony</b>探索與創(chuàng)新之旅!

    報(bào)名啟動(dòng)OpenHarmony源碼轉(zhuǎn)換器—多線(xiàn)程特性轉(zhuǎn)換賽題

    點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們 開(kāi)源項(xiàng)目 OpenHarmony 是每個(gè)人的 OpenHarmony 原文標(biāo)題:報(bào)名啟動(dòng)OpenHarmony源碼轉(zhuǎn)換器—多線(xiàn)程特性轉(zhuǎn)換賽題 文章出處:【微信
    的頭像 發(fā)表于 12-29 16:15 ?1304次閱讀
    報(bào)名<b class='flag-5'>啟動(dòng)</b>|<b class='flag-5'>OpenHarmony</b>源碼轉(zhuǎn)換器—多線(xiàn)程特性轉(zhuǎn)換賽題

    OpenHarmony統(tǒng)一互聯(lián)PMC啟動(dòng)孵化

    在2024年10月12日于上海舉辦的第三屆OpenHarmony技術(shù)大會(huì)上,OpenHarmony統(tǒng)一互聯(lián)PMC(項(xiàng)目群項(xiàng)目管理委員會(huì))正式啟動(dòng)孵化。 OpenHarmony項(xiàng)目群工作
    的頭像 發(fā)表于 10-21 11:44 ?1657次閱讀
    <b class='flag-5'>OpenHarmony</b>統(tǒng)一互聯(lián)PMC<b class='flag-5'>啟動(dòng)</b>孵化
    商都县| 耿马| 祁东县| 黑龙江省| 天等县| 许昌市| 马鞍山市| 湖口县| 正镶白旗| 营口市| 石泉县| 梅河口市| 桦甸市| 白河县| 托克逊县| 文水县| 密山市| 昆明市| 芮城县| 阿拉尔市| 福安市| 年辖:市辖区| 个旧市| 徐闻县| 东丰县| 桃源县| 苍南县| 中江县| 分宜县| 甘肃省| 宁波市| 甘德县| 永福县| 黄梅县| 伊吾县| 中西区| 三河市| 石泉县| 望谟县| 定安县| 昌乐县|