色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HarmonyOS開發(fā)實例:【app帳號管理】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-14 09:46 ? 次閱讀

介紹

本示例選擇應用進行注冊/登錄,并設置帳號相關信息,簡要說明應用帳號管理相關功能。效果圖如下:

效果預覽

image.png

使用說明參考鴻蒙文檔:[qr23.cn/AKFP8k]

搜狗高速瀏覽器截圖20240326151344.png

1.首頁面選擇想要進入的應用,首次進入該應用需要進行注冊,如已注冊帳號則直接登錄。

2.注冊頁面可設置帳號名、郵箱、個性簽名、密碼(帶*號為必填信息),注冊完成后返回登錄頁面使用注冊的帳號進行登錄。

3.登錄后進入帳號詳情界面,點擊修改信息按鈕可跳轉至帳號信息修改頁面重新設置帳號信息。

4.點擊切換應用按鈕則退出該帳號并返回首頁面。重新選擇想要進入的應用。

5.點擊刪除帳號按鈕則會刪除該帳號所有相關信息。

代碼解讀

Harmony與OpenHarmoy鴻蒙文檔添加
mau123789是v直接拿取

entry/src/main/ets/
|---common
|   |---AccountInfo.ets                    // 切換應用組件
|   |---BundleInfo.ets                     // 首頁列表組件
|   |---LoginInfo.ets                      // 登錄組件
|   |---ModifyInfo.ets                     // 修改信息組件
|   |---NavigationBar.ets                  // 路由跳轉組件
|   |---RegisterInfo.ets                   // 注冊組件
|---entryAbility
|   |---EntryAbility.ts             
|---model
|   |---AccountData.ts                     // 數據存儲
|   |---AccountModel.ts                    // 數據管理
|   |---Logger.ts                          // 日志工具
|---pages
|   |---Index.ets                          // 首頁
|   |---Account.ets                        // 切換應用頁面
|   |---Login.ets                          // 登錄頁面
|   |---Modify.ets                         // 修改信息頁面
|   |---Register.ets                       // 注冊信息頁面

具體實現

  • 本示例分為音樂,視頻,地圖三個模塊
    • 音樂模塊
      • 使用Navigation,Button,Text,TextInput組件開發(fā)注冊,登錄,修改信息和切換應用頁面, createAppAccountManager方法創(chuàng)建應用帳號管理器對象
      • 源碼鏈接:[AccountData.ts]
/*

 * 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 Logger from '../model/Logger'

import common from '@ohos.app.ability.common'

import preferences from '@ohos.data.preferences'





const TAG: string = '[AccountData]'



export class AccountData {

  static instance: AccountData = null

  private storage: preferences.Preferences = null



  public static getInstance() {

    if (this.instance === null) {

      this.instance = new AccountData()

    }

    return this.instance

  }



  async getFromStorage(context: common.Context, url: string) {

    let name = url

    Logger.info(TAG, `Name is ${name}`)

    try {

      this.storage = await preferences.getPreferences(context, `${name}`)

    } catch (err) {

      Logger.error(`getStorage failed, code is ${err.code}, message is ${err.message}`)

    }

    if (this.storage === null) {

      Logger.info(TAG, `Create stroage is fail.`)

    }

  }



  async getStorage(context: common.Context, url: string) {

    this.storage = null

    await this.getFromStorage(context, url)

    return this.storage

  }



  async putStorageValue(context: common.Context, key: string, value: string, url: string) {

    this.storage = await this.getStorage(context, url)

    try {

      await this.storage.put(key, value)

      await this.storage.flush()

      Logger.info(TAG, `put key && value success`)

    } catch (err) {

      Logger.info(TAG, `aaaaaa put failed`)

    }

    return

  }



  async hasStorageValue(context: common.Context, key: string, url: string) {

    this.storage = await this.getStorage(context, url)

    let result

    try {

      result = await this.storage.has(key)

    } catch (err) {

      Logger.error(`hasStorageValue failed, code is ${err.code}, message is ${err.message}`)

    }

    Logger.info(TAG, `hasStorageValue success result is ${result}`)

    return result

  }



  async getStorageValue(context: common.Context, key: string, url: string) {

    this.storage = await this.getStorage(context, url)

    let getValue

    try {

      getValue = await this.storage.get(key, 'null')

    } catch (err) {

      Logger.error(`getStorageValue failed, code is ${err.code}, message is ${err.message}`)

    }

    Logger.info(TAG, `getStorageValue success`)

    return getValue

  }



  async deleteStorageValue(context: common.Context, key: string, url: string) {

    this.storage = await this.getStorage(context, url)

    try {

      await this.storage.delete(key)

      await this.storage.flush()

    } catch (err) {

      Logger.error(`deleteStorageValue failed, code is ${err.code}, message is ${err.message}`)

    }

    Logger.info(TAG, `delete success`)

    return

  }

}

[AccountModel.ts]

/*

 * 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 Logger from '../model/Logger'

import appAccount from '@ohos.account.appAccount'



const TAG: string = '[AccountModel]'

const app: appAccount.AppAccountManager = appAccount.createAppAccountManager()



export class AccountModel {

  async addAccount(username: string) {

    await app.addAccount(username)

    Logger.info(TAG, `addAccount success`)

    return

  }



  async deleteAccount(username: string) {

    await app.deleteAccount(username)

    Logger.info(TAG, `deleteAccount success`)

    return

  }



  async setAccountCredential(username: string, credentialType: string, credential: string) {

    await app.setAccountCredential(username, credentialType, credential)

    Logger.info(TAG, `setAccountCredential success`)

    return

  }



  async setAccountExtraInfo(name: string, extraInfo: string) {

    await app.setAccountExtraInfo(name, extraInfo)

    Logger.info(TAG, `setAccountExtraInfo success`)

    return

  }



  async setAssociatedData(name: string, key: string, value: string) {

    await app.setAssociatedData(name, key, value)

    Logger.info(TAG, `setAssociatedData success`)

    return

  }



  async getAccountCredential(name: string, credentialType: string) {

    let result = await app.getAccountCredential(name, credentialType)

    Logger.info(TAG, `getAccountCredential success`)

    return result

  }



  async getAccountExtraInfo(name: string) {

    let result = await app.getAccountExtraInfo(name)

    Logger.info(TAG, `getAccountExtraInfo success`)

    return result

  }



  async getAssociatedData(name: string, key: string) {

    let result = await app.getAssociatedData(name, key)

    Logger.info(TAG, `getAssociatedData success`)

    return result

  }

}
  • 接口參考:[@ohos.account.appAccount],[@ohos.data.preferences],[@ohos.router]
    • 視頻模塊
      • 使用Navigation,Button,Text,TextInput組件開發(fā)注冊,登錄,修改信息和切換應用頁面,createAppAccountManager方法創(chuàng)建應用帳號管理器對象
      • 源碼鏈接:[AccountData.ts],[AccountModel.ts]
      • 接口參考:[@ohos.account.appAccount],[@ohos.data.preferences],[@ohos.router]
    • 地圖模塊
      • 使用Navigation,Button,Text,TextInput組件開發(fā)注冊,登錄,修改信息和切換應用頁面,createAppAccountManager方法創(chuàng)建應用帳號管理器對象
      • 源碼鏈接:[AccountData.ts],[AccountModel.ts]
      • 接口參考:[@ohos.account.appAccount],[@ohos.data.preferences],[@ohos.router]

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    57

    文章

    2344

    瀏覽量

    42822
  • HarmonyOS
    +關注

    關注

    79

    文章

    1974

    瀏覽量

    30147
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發(fā)實例:【狀態(tài)管理

    從數據的傳遞形式來看,可以分為只讀的單向傳遞和可變更的雙向傳遞。如下圖所示,開發(fā)框架提供了多種應用程序狀態(tài)管理的能力。
    的頭像 發(fā)表于 04-10 09:38 ?799次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>實例</b>:【狀態(tài)<b class='flag-5'>管理</b>】

    HarmonyOS應用開發(fā)-編譯、調試、應用發(fā)布資料

    Studio提供了基于各種編寫代碼及不同設備的調試功能,如果使用了多種代碼編寫應用,請參考選擇調試代碼類型進行配置后啟動調試,調試過程中基于不同的代碼進行斷點管理開發(fā)者完成HarmonyOS應用
    發(fā)表于 09-21 16:29

    HarmonyOS開發(fā)跨設備的鴻蒙(HarmonyOSApp

    是圓形(如智能手表),這就給開發(fā)App帶來了麻煩。現在幾乎每一個智能設備廠商,如Apple、華為都面臨這個問題。這就要求我們開發(fā)App盡可能適合更多的智能設備。當然,最簡單,最直接的
    發(fā)表于 11-02 15:18

    HarmonyOS開發(fā)跨設備的鴻蒙(HarmonyOSApp

    手表),這就給開發(fā)App帶來了麻煩。現在幾乎每一個智能設備廠商,如Apple、華為都面臨這個問題。這就要求我們開發(fā)App盡可能適合更多的智能設備。當然,最簡單,最直接的方式是為每一類
    發(fā)表于 11-03 16:54

    如何優(yōu)雅地開發(fā)HarmonyOS APP應用

    ` 本帖最后由 軟通動力HOS 于 2021-3-10 15:29 編輯 研究HarmonyOS有一段時間了,今天主要結合自己多年的項目開發(fā)經驗和各種技術棧結合HarmonyOS APP
    發(fā)表于 03-10 15:13

    戈帥 開發(fā)HarmonyOS APP《拼夕夕》演示

    戈帥 開發(fā)HarmonyOS APP《拼夕夕》演示
    發(fā)表于 08-28 17:39

    【視頻】應用開發(fā)第4期:原子化服務帳號授權

    介紹HarmonyOS Connect應用如何引入華為帳號能力,以及帳號能力在工程中的業(yè)務流。帳號服務開發(fā)指南:https://develo
    發(fā)表于 12-14 11:54

    harmonyOS開發(fā)APP如何訪問Webservice?

    我接到一個項目,需要用到HarmonyOS開發(fā)APP做為移動手機查詢和收到報警數據,具體是這樣的,在C/S加B/S的系統(tǒng)框架下我們有數據庫服務器和Web服務器,有widows桌面應用和Web瀏覽器
    發(fā)表于 03-28 10:14

    HarmonyOS APP打包運行和調試應用開發(fā)步驟

    在進行HarmonyOS應用開發(fā)前,您應該掌握HarmonyOS應用的邏輯結構。HarmonyOS應用發(fā)布形態(tài)為APP Pack(Appli
    發(fā)表于 05-24 14:27

    HarmonyOS Connect “Device Partner”專場FAQ來啦!

    HarmonyOS Connect生態(tài),共同提升消費者的智慧生活體驗。 在接入HarmonyOS Connect生態(tài)的過程中,你是否對團隊管理帳號找回、產品委托、產品信息查詢等功能的
    發(fā)表于 02-27 11:07

    餐飲管理APP開發(fā)

     【粉果科技】專注于APP開發(fā)—深圳APP開發(fā)公司解釋到:隨著移動互聯(lián)網的來了,通過餐飲管理APP
    發(fā)表于 06-26 11:57 ?373次閱讀

    HarmonyOS Connect “Device Partner”專場FAQ來啦!

    HarmonyOS Connect生態(tài),共同提升消費者的智慧生活體驗。 在接入HarmonyOS Connect生態(tài)的過程中,你是否對團隊管理帳號找回、產品委托、產品信息查詢等功能的
    的頭像 發(fā)表于 02-24 09:10 ?622次閱讀

    鴻蒙開發(fā)設備管理:ohos.account.appAccount 應用帳號管理

    應用帳號管理:獲取應用帳號模塊對象。
    的頭像 發(fā)表于 07-06 10:43 ?664次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b>設備<b class='flag-5'>管理</b>:ohos.account.appAccount 應用<b class='flag-5'>帳號</b><b class='flag-5'>管理</b>

    鴻蒙開發(fā)管理:ohos.account.distributedAccount 分布式帳號管理

    獲取分布式帳號實例對象。
    的頭像 發(fā)表于 07-08 10:03 ?241次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b><b class='flag-5'>管理</b>:ohos.account.distributedAccount 分布式<b class='flag-5'>帳號</b><b class='flag-5'>管理</b>

    鴻蒙開發(fā)管理:ohos.account.osAccount 系統(tǒng)帳號管理

    本模塊提供管理系統(tǒng)帳號的一些基礎能力,包括系統(tǒng)帳號的添加、刪除、查詢、設置、訂閱、啟動等功能,提供系統(tǒng)帳號數據落盤的能力。
    的頭像 發(fā)表于 07-08 09:54 ?341次閱讀
    鴻蒙<b class='flag-5'>開發(fā)</b><b class='flag-5'>管理</b>:ohos.account.osAccount 系統(tǒng)<b class='flag-5'>帳號</b><b class='flag-5'>管理</b>
    主站蜘蛛池模板: 神马影院在线eecss伦理片| 色聚网久久综合| 色欲色香天天天综合| 亚洲精品久久久久中文字幕二区| 在线 国产 欧美 专区| 宝贝好紧好爽再搔一点试視頻| 国产精品视频大全| 蜜桃成人在线| 小SAO货边洗澡边CAO你动漫| 中文字幕无线观看不卡网站| 国产黄a三级三级三级| 快播官方网站| 亚洲精品国产高清不卡在线| 99久久精品一区二区三区| 国产亚洲精品看片在线观看| 女人一级毛片免费观看| 亚洲人人为我我为人人| 闺蜜撬开我的腿用黄瓜折磨我| 久久综久久美利坚合众国| 国产青青草原| 久久综合伊人 magnet| 亚洲精品成人| 国产成人一区免费观看| 男人大臿蕉香蕉大视频| 影音先锋亚洲AV少妇熟女| 国产精品人妻无码久久久奥特曼| 暖暖 免费 日本 高清 在线1| 影音先锋 av天堂| 999视频在线观看| 大胸美女被c| 国产在线精品亚洲一品区| 男女久久久国产一区二区三区| 亚洲精品国产熟女久久久| 国产乱对白精彩在线播放| 日本视频中文字幕一区二区| 99久久久无码国产精品免费人妻| 久久精品影视| 在教室伦流澡到高潮H女攻视频| 狠狠色丁香婷婷久久综合| 亚洲福利天堂网福利在线观看| 国产GV天堂亚洲国产GV刚刚碰|