国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

OpenHarmony標準設備應用開發——分布式數據管理

原創
系統 OpenHarmony
本章將會在前面兩章的基礎上給大家講解分布式數據管理在多臺設備間,當數據出現變動時,通過訂閱的方式,實現多臺設備間的數據同步更新。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://harmonyos.51cto.com??

上一章,我們通過分布式音樂播放器、分布式炸彈、分布式購物車,帶大家講解了 OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)中,相關控件在布局中如何使用,以及在 OpenHarmony 中如何實現音樂播放,顯示動畫,轉場動畫(頁面間轉場)等功能。本章是 OpenHarmony 標準設備應用開發的第三篇文章,將會在前面兩章的基礎上給大家講解分布式數據管理在多臺設備間,當數據出現變動時,通過訂閱的方式,實現多臺設備間的數據同步更新。

為了更好的理解,我們使用 eTS 開發了一款如下動圖所示的井字過三關游戲來講解分布式數據管理在應用中的使用。

Demo 簡介:Demo 基于 OpenHarmony 系統使用 eTS 語言進行編寫,本 Demo 主要通過設備認證,分布式拉起,分布式數據管理等功能來實現。

項目創建以及頁面布局等,這里就不再贅述,本章重點講解自定義彈窗以及分布式數據管理。

自定義彈窗

通過對自定義彈窗的講解,希望能讓大家學到如何在項目中實現自己的自定義彈窗。

1.1通過 @CustomDialog 裝飾器來創建自定義彈窗,使用方式可參考 自定義彈窗:

官方參考鏈接:

https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/application-dev/reference/arkui-ts/ts-methods-custom-dialog-box.md

1.2布局從上到下由 Text、List、Button 組成,List 中的子元素由 Text 和 Radio 組成,以下代碼的省略號表示非 UI 相關的邏輯代碼,具體實現參考源代碼:

@CustomDialog
struct gameStart {
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
//頂部標題
Text('發現以下在線設備').fontColor(Color.Black).fontSize(30)
}.width('100%').height('20%')

Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Start }) {
//使用List容器動態加載在線設備
List() {
ForEach(this.deviceName, (item) => {
ListItem() {
Row() {
//Text組件顯示設備名
Text(item.deviceName).width('80%').fontSize(30).fontColor(Color.Black)
//Radio組件顯示單選框
Radio({ value: '' }).checked(this.check[item.id]).onChange(() => {
//這里保證List里面點擊了多個Radio組件時,只有當前點擊的為選中狀態
for (let i = 0; i < this.check.length; i++) {
this.check[i] = false
}
this.check[item.id] = true
})
}
}
}, item => item.id)
}
.height('80%')

Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Button('確定').width(200).height(50).fontSize(30).onClick(() => {
//......
this.controller.close()
})
}.height('30%')

}.width('100%').height('80%')
}.height('100%').width('100%')
}
}

通過上述方式,完成我們的自定義彈窗,大家也可以在自己的項目中嘗試完成自己的自定義彈窗。

分布式數據管理

分布式數據管理,可以在多臺設備間,當數據出現變動時,通過訂閱的方式,實現多臺設備間的數據同步更新。當我們需要在多臺設備間實現數據的同步更新,就可以使用分布式數據管理來實現。井字過三關游戲,通過分布式數據管理,實現多臺設備間游戲界面的同步更新,實現多臺設備同玩一個游戲的功能。

官網參考鏈接:

https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Beta/zh-cn/application-dev/reference/apis/js-apis-distributed-data.md

數據分布式運作示意圖,如下所示。

實現步驟:

分布式數據管理依賴 @ohos.data.distributedData 模塊實現,詳細參考項目源碼中的 RemoteDataManager.ets 實現步驟。

2.1 導入該模塊

import factory from '@ohos.data.distributedData';

2.2 創建 KVManager 實例,用于管理數據庫對象

registerDataListCallback(callback) {
let that = this
if (this.kvManager == null) {
try {
const config = {
userInfo: {
userId: '0',
userType: 0
},
bundleName: 'com.example.tictactoegame'
}
factory.createKVManager(config).then((manager) => {
that.kvManager = manager
that.registerDataListCallback_(callback)
}).catch((err) => {
})
} catch (e) {
}
} else {
this.registerDataListCallback_(callback)
}
}

備注:bundleName 改成對應內容

2.3 創建并獲取 KVStore 數據庫

registerDataListCallback_(callback) {
let that = this
if (that.kvManager == null) {
callback()
return
}
if (that.kvStore == null) {
try {
let options =
{
createIfMissing: true,
encrypt: false,
backup: false,
autoSync: true,
kvStoreType: 1,
securityLevel: 3
}
this.kvManager.getKVStore(this.STORE_ID, options).then((store) => {
that.kvStore = store
that._registerDataListCallback_(callback)
}).catch((err) => {
})
} catch (e) {
}
} else {
this._registerDataListCallback_(callback)
}
}

備注:STORE_ID 改成對應內容

2.4 訂閱指定類型的數據變更通知

 _registerDataListCallback_(callback) {
let that = this
if (that.kvManager == null) {
callback()
return
}
this.kvStore.on('dataChange', 1, function(data) {
if (data) {
that.arr = data.updateEntries
callback()
}
})
}

備注:kvStore.on 方法中的 1 對應訂閱的類型,具體詳情看上面官網參考中的詳細描述。

2.5 添加指定類型鍵值對到數據庫

 dataChange(key, value) {
let that = this
try {
that.kvStore.put(JSON.stringify(key), JSON.stringify(value)).then((data) => {
}).catch((err) => {
prompt.showToast({message:'put err:'+JSON.stringify(value)})
})

} catch (e) {
}
}

項目下載鏈接:

https://gitee.com/openharmony-sig/knowledge_demo_temp/tree/master/FA/Entertainment/TicTacToeGame

相關問題說明:

分布式數據管理數據傳輸過程中,如果數據中包含中文,會出現亂碼,所以數據存儲中,盡量不要使用中文。

通過此次三個章節的講解,我們知道了如何從零到有在標準設備上運行一個最簡單的 OpenHarmony 程序,并在此基礎上,知道了如何在 OpenHarmony 中做到音樂播放,顯示動畫,轉場動畫等相關進階技能,以及如何通過分布式數據管理在多臺設備之間實現數據的同步更新。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://harmonyos.51cto.com??

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2023-05-23 10:13:52

開源鴻蒙

2018-03-12 08:17:27

分布式存儲

2020-11-13 12:09:46

HarmonyOS

2022-02-15 14:06:36

OpenHarmon操作系統鴻蒙

2022-04-24 16:00:03

Ability鴻蒙

2017-03-14 11:52:52

微服務架構數據管理

2022-02-15 14:45:14

OpenHarmo系統鴻蒙

2023-02-20 15:38:38

2023-02-20 15:29:14

分布式相機鴻蒙

2023-02-21 16:41:41

分布式相機鴻蒙

2022-04-08 11:08:17

分布式數據接口同步機制

2022-12-26 11:24:28

鴻蒙Stage模型

2022-06-15 16:16:21

分布式數據庫鴻蒙

2021-12-14 10:16:00

鴻蒙HarmonyOS應用

2020-11-19 11:43:26

HarmonyOS

2020-11-20 09:45:19

HarmonyOS

2021-10-28 14:48:46

鴻蒙HarmonyOS應用

2022-06-20 15:32:55

Stage模型分布式開發

2023-12-29 08:18:31

Session分布式系統微服務

2024-01-25 16:14:39

點贊
收藏

51CTO技術棧公眾號

国产日本欧美一区二区三区| 亚洲免费视频一区| 91福利区在线观看| 中文字幕一区二区三区四区不卡| 国产精品对白一区二区三区| jizz18欧美18| 亚洲欧美国产日韩天堂区| 污视频在线看操| 91视视频在线观看入口直接观看www | 91精品国产免费久久综合| 成人性生交免费看| 国产精品系列在线播放| 国产视频一区二区三区四区| 国产一区二区精品福利地址| 九九九久久久久久| 国产成人免费9x9x人网站视频| 日韩欧美中文字幕一区| 你懂的视频在线| 一区二区高清在线| 国产wwwxx| av电影在线观看一区| 亚洲视频电影| 亚洲综合欧美| 国产专区一区二区三区| 欧美二区视频| 成人精品aaaa网站| 国产毛片一区二区三区 | 激情网站在线| 欧美日韩在线直播| 青青青免费视频在线2| 三级av在线| 精品国产一区二区三区麻豆免费观看完整版 | 五月婷婷激情久久| 久久都是精品| 亚洲aaaaaa| 狠狠噜噜久久| 欧美激情国产日韩| 综合激情成人伊人| 男人天堂网在线观看| 亚洲午夜极品| 日本一本草久p| 一色桃子久久精品亚洲| 一区二区三区av电影| 女人扒开屁股爽桶30分钟| 国产精品12区| 男女h黄动漫啪啪无遮挡软件| 日产国产欧美视频一区精品| 亚洲最新在线| 成人免费视频视频| 欧美又粗又长又爽做受| 99精品久久99久久久久| 不要播放器的av网站| 国产精品国产自产拍在线| 99reav2| 亚洲午夜激情网站| 国产一级免费在线观看| 91精品国产综合久久久久久久久久 | 肉大捧一出免费观看网站在线播放 | 在线男人天堂| 久久精品国产亚洲精品2020| 午夜久久av| 国产v综合ⅴ日韩v欧美大片| 91精品综合久久久久久久久久久| 亚洲一区精品电影| 日本视频在线一区| 北条麻妃69av| 亚洲第一福利视频在线| a黄色在线观看| 亚洲黄色www网站| 亚洲精品无播放器在线播放| 日韩av电影在线网| 日韩天天综合| 成人黄色av片| 亚洲一区在线视频| 成人免费高清| 久久亚洲国产成人| 午夜激情久久| av磁力番号网| 亚洲国产中文字幕在线视频综合| 国产淫片在线观看| 日韩在线视频线视频免费网站| 亚洲免费福利一区| 欧美日本亚洲| 国产欧美日韩另类视频免费观看| 欧美高清成人| 亚洲欧美一区二区激情| 国产a久久精品一区二区三区| 久中文字幕一区| 久久久青草青青国产亚洲免观| 亚洲52av| 中文字幕免费精品一区高清| 国产最新精品| 蜜臀在线免费观看| 午夜激情综合网| 成人视屏在线观看| 91传媒视频免费| 波多野结衣中文字幕一区二区三区| 屁屁影院在线观看| 亚洲无限av看| 欧美区一区二| 激情内射人妻1区2区3区| 欧美狂野另类xxxxoooo| 久久久久高潮毛片免费全部播放| 日本成人看片网址| 亚洲一区在线视频观看| 电影亚洲精品噜噜在线观看| 91精品视频免费看| 久久久久久久综合色一本| 一级日本在线| 国产99久久精品一区二区永久免费| 韩国av一区二区| 亚洲第一视频| 久久久久久成人| 国产乱子轮精品视频| 成人影视在线播放| 久久人人97超碰精品888| 国产乱码精品一区二区三区五月婷| 日韩欧美在线观看一区二区| 欧美激情伊人电影| 久久99九九99精品| 亚洲s色大片| 国产精品色视频| 国产日韩欧美精品电影三级在线| av电影在线地址| 国产精品免费在线| 亚洲无线码一区二区三区| 精品国产亚洲日本| 亚洲a∨一区二区三区| 欧美系列在线观看| 亚洲人成网77777色在线播放| 欧美黄网在线观看| 亚洲国内精品视频| 日本不卡高清视频| 色视频在线免费观看| http;//www.99re视频| 一区二区日韩电影| 欧美美女在线直播| 日韩无套无码精品| 视频直播国产精品| 丁香六月久久综合狠狠色| 日本蜜桃在线观看视频| 久久av免费一区| 欧美在线一二三四区| 久久久久美女| 小草av在线播放| 成人激情视频在线| 色综合视频一区二区三区高清| 欧美精品尤物在线观看| 日本高清好狼色视频| 国产精品白嫩初高中害羞小美女 | 天堂а√在线资源在线| 国产中文欧美精品| 亚洲国产成人av网| 亚洲91视频| 国产中文在线视频| 国产色综合一区二区三区| 91福利资源站| 欧美va亚洲va日韩∨a综合色| 日韩写真福利视频在线| 91精品国产自产在线老师啪| 欧美色videos| 亚洲一区二区三区高清| 性爱视频在线播放| 中文字幕在线亚洲三区| 亚洲视频在线免费看| 成人午夜碰碰视频| 欧美一级大片在线视频| 被下部羞羞漫画| 成人午夜在线影院| 欧美午夜电影网| 人禽交欧美网站| 欧美成人精品三级网站| 黄色一级大片在线观看| 日韩av成人在线观看| 色丁香久综合在线久综合在线观看| 一本久久知道综合久久| 日本不卡一二三| free亚洲| 国产精品入口免费| 国产视频自拍一区| 久久婷婷成人综合色| 精品国产欧美日韩| 69久久久久| 99在线免费视频观看| 国内精品中文字幕| 91福利区一区二区三区| 精品一区二区三区免费毛片爱| 91麻豆精品一二三区在线 | 国产精品一区在线观看你懂的| 国产激情欧美| 能在线观看av网站| 欧美亚洲免费高清在线观看 | 欧美a大片欧美片| 欧美日韩伦理片| 日韩精品第一页| 欧美成人午夜激情视频| 色婷婷综合久久久中文一区二区| 麻豆91在线播放免费| 私拍精品福利视频在线一区| 成码无人av片在线观看网站|