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

360网站弹窗推广怎么做的短视频优化

360网站弹窗推广怎么做的,短视频优化,中国建设银行集团网站,优化 导航网站大家好,我是 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://www.dtcms.com/wzjs/10248.html

相关文章:

  • 大连外贸网站建设天津seo管理平台
  • unix做网站常用的数据库重庆快速排名优化
  • 门户网站 建设 如何写智慧软文网
  • 高端网站建设与管理营销课程培训视频
  • 如何做 行业社交类网站个人域名注册流程
  • 济南建站优化营销和运营的区别是什么
  • 建立网站报价关键词优化公司电话
  • 做商城网站哪个好百度优化关键词
  • 北京网站优化外包公司排名软件下载
  • 搜索小程序网站seo诊断分析和优化方案
  • 郑州市做网站的公百度快照入口
  • dede企业网站带留言板后台查询百度收录时间
  • 党务政务建设新闻网站外贸网站推广方法之一
  • 网络规划设计师一本通seo工作前景如何
  • 四川住建委官网首页苏州seo优化
  • 做团建活动网站宁波seo推广优化公司
  • 做公司网站利润北京全网营销推广
  • 网站建设致谢百度云盘网页版
  • 成华区微信网站建aso优化
  • 企业模板网站建设优势分析简述影响关键词优化的因素
  • 宁波企业网站建站在百度平台如何做营销
  • 做网站攻略百度云官网
  • wordpress头条主题手机seo百度点击软件
  • 美做天然居家居网站发新闻稿平台
  • asp网站源码破解百度指数的网址是什么
  • 自己如何免费制作一个网站10常用的网络营销方法
  • 东莞建设网站企业佛山快速排名seo
  • 百度js转wordpress网站权重优化
  • 医院网站必须建设吗搜索引擎优化的办法有哪些
  • 把做的网站放到互联网上网站推广方式