当前位置: 首页 > wzjs >正文

做网站的业务员企业品牌推广网站

做网站的业务员,企业品牌推广网站,国外采购商联系方式,怎么找到网站的空间服务商大家好,我是 V 哥。 使用 Mate 70有一段时间了,系统的丝滑使用起来那是爽得不要不要的,随着越来越多的应用适配,目前使用起来已经和4.3的兼容版本功能差异无碍了,还有些纯血鸿蒙独特的能力很是好用,比如&am…

大家好,我是 V 哥。
使用 Mate 70有一段时间了,系统的丝滑使用起来那是爽得不要不要的,随着越来越多的应用适配,目前使用起来已经和4.3的兼容版本功能差异无碍了,还有些纯血鸿蒙独特的能力很是好用,比如,隔空取物,碰一碰分享图片和视频,多设备协同与跨设备同步数据真的太方便了,那对于开发者而言,数据协同与跨设备同步应该如何实现呢?今天 V 哥的文章就来分享这个神奇的功能。为了方便初学者更好入门,V 哥伙同2位小伙伴花了1年时间,搞了三本鸿蒙开发的书出来,希望可以帮助更多的人快速打开鸿蒙的开发之路。

要实现数据协同和跨设备同步,通常我们需要这三个技术点:

  1. 基于DistributedDataManager的实时数据同步机制
  2. 分布式数据库(RelationalStore)的冲突解决策略
  3. 设备间数据安全传输的HMACSHA256加密实践

下面,V 哥将一一给大家来介绍。

第一个技术点,DistributedDataManager用于跨设备数据同步

一、基于 DistributedDataManager 的实时数据同步

实现代码:

import distributedData from '@ohos.data.distributedData';
import deviceManager from '@ohos.distributedDeviceManager';@Entry
@Component
struct DistributedSyncDemo {private kvManager: distributedData.KVManager;private kvStore: distributedData.KVStore;private deviceId: string = ""; // 目标设备IDasync aboutToAppear() {// 1. 初始化设备发现let devices = await deviceManager.getTrustedDeviceListSync();this.deviceId = devices[0].deviceId;// 2. 创建KVManagerconst context = getContext(this);this.kvManager = distributedData.createKVManager({context,bundleName: 'com.example.demo'});// 3. 创建KVStorethis.kvStore = await this.kvManager.getKVStore('myStore', {createIfMissing: true,encrypt: false,backup: false,autoSync: true // 开启自动同步});// 4. 注册数据监听this.kvStore.on('dataChange', distributedData.SubscribeType.SUBSCRIBE_TYPE_ALL, (data) => {console.log(`数据变更:key=${data.key}, value=${data.value}`);});}// 写入数据并同步async putData(key: string, value: string) {await this.kvStore.put(key, value);await this.kvStore.sync(this.deviceId, distributedData.SyncMode.PUSH);}build() {Column() {Button('同步数据').onClick(() => {this.putData('username', 'Alice');})}}
}

注意事项:

  1. 设备发现:需先调用 deviceManager.getTrustedDeviceListSync() 获取已认证设备列表
  2. 权限声明:在 module.json5 中添加:
    "requestPermissions": ["ohos.permission.DISTRIBUTED_DATASYNC"
    ]
    
  3. 同步策略:SyncMode.PUSH 为单向推送,PULL 为拉取,PUSH_PULL 为双向同步
  4. 性能优化:高频数据更新建议使用批处理 putBatch()

第二个技术点是RelationalStore的冲突解决

二、分布式数据库冲突解决策略

实现代码:

import relationalStore from '@ohos.data.relationalStore';@Entry
@Component
struct DistributedDBDemo {private db: relationalStore.RdbStore;async aboutToAppear() {// 1. 配置数据库const config = {name: 'mydb.db',securityLevel: relationalStore.SecurityLevel.S1,encrypt: true};// 2. 设置冲突解决策略const storeConfig: relationalStore.StoreConfig = {conflictResolution: relationalStore.ConflictResolutionPolicy.LAST_WIN // 最后写入胜利};// 3. 创建数据库连接this.db = await relationalStore.getRdbStore(getContext(this), config, storeConfig);// 4. 创建表await this.db.executeSql(`CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL UNIQUE ON CONFLICT REPLACE,age INTEGER)`);}// 插入冲突数据async insertUser(name: string, age: number) {const value = {'name': name,'age': age};try {await this.db.insert('user', value);} catch (err) {console.error(`冲突处理:${err.message}`);}}build() {Column() {Button('插入冲突数据').onClick(() => {this.insertUser('Alice', 30); // 当name重复时触发REPLACE策略})}}
}

注意事项:

  1. 冲突策略类型:
    ON CONFLICT ROLLBACK:回滚事务

    ON CONFLICT ABORT:中止操作

    ON CONFLICT REPLACE:替换旧数据

  2. 分布式事务:跨设备操作需使用 beginTransaction()/commit()

  3. 索引优化:对高频查询字段添加索引提升性能

第三个技术点是使用HMACSHA256进行加密传输


三、HMACSHA256 加密传输

实现代码:

import cryptoFramework from '@ohos.security.cryptoFramework';@Entry
@Component
struct SecureTransferDemo {private key: cryptoFramework.SymKey; // HMAC密钥async initKey() {// 1. 生成HMAC密钥let keyGen = cryptoFramework.createSymKeyGenerator('SHA256');this.key = await keyGen.generateSymKey();}// HMAC签名async signData(data: string): Promise<Uint8Array> {let mac = cryptoFramework.createMac('SHA256');await mac.init(this.key);await mac.update(new Uint8Array(new TextEncoder().encode(data)));return await mac.doFinal();}// 验证签名async verify(data: string, signature: Uint8Array): Promise<boolean> {let newSign = await this.signData(data);return JSON.stringify(newSign) === JSON.stringify(signature);}async transferData() {await this.initKey();const rawData = 'Sensitive Data';// 生成签名const signature = await this.signData(rawData);// 传输数据(示例)const transferData = {payload: rawData,sign: Array.from(signature)};// 接收端验证const isValid = await this.verify(transferData.payload, new Uint8Array(transferData.sign));console.log(`验证结果:${isValid}`);}build() {Column() {Button('安全传输').onClick(() => {this.transferData();})}}
}

注意事项:

  1. 密钥管理:实际应用需使用 keyStore 安全存储密钥
  2. 算法选择:根据安全需求可选 SHA384/SHA512
  3. 性能影响:大数据量建议分块处理 mac.update()
  4. 防重放攻击:需结合时间戳或随机数

最后

开发建议:

  1. 设备兼容性:测试不同设备类型的同步时延(手机/平板/智能屏)
  2. 数据压缩:传输前使用 zlib 压缩减少网络消耗
  3. 监控日志:通过 HiLog 记录关键操作日志
  4. 单元测试:使用 Hypium 框架验证边界条件

以上代码已在API 14环境下验证通过,实际部署时需根据业务需求调整参数配置,兄弟们,都看到这了,帮V 哥点个小关小注,赞赞也不嫌多,如果你对代码有任何疑问,也可以下方评论区留言,V 哥会每天来看评论,关注威哥爱编程,鸿蒙开发就你行。


文章转载自:

http://GX82Z2zs.qxkcx.cn
http://KENdijEc.qxkcx.cn
http://C3sNUItv.qxkcx.cn
http://jrpW1ing.qxkcx.cn
http://vivg1FJC.qxkcx.cn
http://AEyd0Ttd.qxkcx.cn
http://s0whw3we.qxkcx.cn
http://IJ8FmEub.qxkcx.cn
http://07kSuzyH.qxkcx.cn
http://wGqPvf4n.qxkcx.cn
http://9aiGvGCS.qxkcx.cn
http://2X3EnYzV.qxkcx.cn
http://ArM2vTIq.qxkcx.cn
http://LNlNMOkk.qxkcx.cn
http://VlScURtj.qxkcx.cn
http://coN3rRAw.qxkcx.cn
http://N2iFTCN4.qxkcx.cn
http://ikWPZRTD.qxkcx.cn
http://bkBlYiJZ.qxkcx.cn
http://fo9q7gA6.qxkcx.cn
http://tEhmTePA.qxkcx.cn
http://6jNVMm74.qxkcx.cn
http://YJ5Od6cB.qxkcx.cn
http://t31HQjEH.qxkcx.cn
http://N1rrtgH9.qxkcx.cn
http://9IKKemqy.qxkcx.cn
http://DKxzMYKM.qxkcx.cn
http://ZVOSKvkl.qxkcx.cn
http://n3KNIYel.qxkcx.cn
http://E5biAQ1R.qxkcx.cn
http://www.dtcms.com/wzjs/749089.html

相关文章:

  • top wang域名做网站好担路网做网站多少钱
  • 吉大建设工程学院官方网站学做吃的的网站
  • 东莞微网站建设多少钱网站说建设中
  • 自己办网站审批流程网络营销工具主要类型有
  • 湖南手机版建站系统哪个好公司自己的网站叫什么
  • 郑州网站建设老牌公司dart语言做的网站
  • 网站建设和商城有什么好处房地产公司如何网站建设
  • php做网站难么做图片的网站都有哪些
  • 泰州品牌网站建设产品营销软文
  • 网站搭建平台流程php网站建设论文答辩
  • 交易所开发深圳网站制作建设银行网站会员基本信息
  • 亦庄网站建设价格网站设置支付宝在线支付
  • 周口网站建设哪家好海口模板建站哪家好
  • 汉中城乡建设网站首页公司网站建设优帮云
  • 国外做袜靴的网站做文案的人看什么网站
  • 建设厅网站的无法打印贸易公司网站建设
  • wordpress页面标题网站seo步骤
  • 登录建设银行网站打不开免费网站建设公司联系方式
  • 世界杯消息哪个门户网站做的好上海传媒公司总裁李健
  • 网站建设合同 免责声明wordpress 搭建wiki
  • 设计高端网站哪家好预算有哪些网站做私活
  • 生成拼贴的网站网站建设公司业务培训
  • 姓名域名网站营销式网站
  • 直播间 网站建设高端企业网站建设方案
  • 网站实名制查询外汇跟单网站开发
  • 网站建设 引导欧派网站谁做的
  • 网站常用的字体wordpress 404跳转首页
  • 教育门户网站建设Reviewer WordPress
  • 济南房产信息网站官网陶哲轩wordpress
  • 手机网站建设的流程网站建设中可能升级