介紹
本示例選擇應用進行注冊/登錄,并設置帳號相關信息,簡要說明應用帳號管理相關功能。效果圖如下:
效果預覽
使用說明參考鴻蒙文檔:[qr23.cn/AKFP8k
]
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
發(fā)布評論請先 登錄
相關推薦
HarmonyOS應用開發(fā)-編譯、調試、應用發(fā)布資料
Studio提供了基于各種編寫代碼及不同設備的調試功能,如果使用了多種代碼編寫應用,請參考選擇調試代碼類型進行配置后啟動調試,調試過程中基于不同的代碼進行斷點管理。開發(fā)者完成HarmonyOS應用
發(fā)表于 09-21 16:29
【HarmonyOS】開發(fā)跨設備的鴻蒙(HarmonyOS) App
是圓形(如智能手表),這就給開發(fā)App帶來了麻煩。現在幾乎每一個智能設備廠商,如Apple、華為都面臨這個問題。這就要求我們開發(fā)的App盡可能適合更多的智能設備。當然,最簡單,最直接的
發(fā)表于 11-02 15:18
【HarmonyOS】開發(fā)跨設備的鴻蒙(HarmonyOS)App
手表),這就給開發(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ā)第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ā)管理:ohos.account.osAccount 系統(tǒng)帳號管理
本模塊提供管理系統(tǒng)帳號的一些基礎能力,包括系統(tǒng)帳號的添加、刪除、查詢、設置、訂閱、啟動等功能,提供系統(tǒng)帳號數據落盤的能力。
評論