重生之我在大学自学鸿蒙开发第九天-《分布式流转》

目录

前言

本章的主要内容是分布式流转,这一名词对于我来说也是一个新名词,不知道大家有没有听说过这一名词。给大家简单介绍下是什么,就像我们手机打开抖音刷视频,平板可能也会显示(前提是同一wife和同一账号)相信大家在平时也会使用,今天我们就来看看他是怎么来实现的这一功能。我感觉就是对配置文件的修改(个人观点)

官方解释:

在进行分布式流转开发之前,需要先了解流转的前提条件,流转的前提条件包括:

  • 双端设备需要登录同一华为帐号。

  • 双端设备需要打开Wi-Fi和蓝牙开关。条件允许时,建议双端设备接入同一个局域网,可提升数据传输的速度。

  • 应用接续只能在同应用(UIAbility)之间触发,双端设备都需要有该应用。

实践

本章节内容参考官方链接
通过结构化数据构建页面-HarmonyOS应用开发快速入门-Codelabs-华为开发者联盟

配置流转

启用应用接续能力,这里在default模块中开启应用接续

这里好像是牵扯到权限问题,所以要在json中进行一下配置,具体原因官网解释如下:

写明申请原因。由于之后需要的分布式流转权限即"ohos.permission.DISTRIBUTED_DATASYNC"权限为user_grant权限类型,为需要用户授权的类型,该类型权限申请时需要写明申请原因和使用场景,且原因字段只支持使用$string的方式进行引用,具体写法之后的申请配置可以看到,所以需要开发者在products/default/src/main/resources/base/element/string.json中写明申请原因。

这里还是在default模块下进行配置,也是关于权限的问题,这里直接去官网复制过来就行了,相当于一个小功能,不用刻意的去记住这些东西

复制代码
 "requestPermissions": [
      {
        "name": "ohos.permission.DISTRIBUTED_DATASYNC",
        "reason": "$string:distributed_data_sync",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "inuse"
        }
      },
      {
        "name": "ohos.permission.INTERNET",
        "reason": "$string:apply_for_network"
      }
    ]

运行流程

这里就相当于我们手机打开APP,在平板上面也可以进行打开

接口实现

开始实现源端和对端的接口

源端接口实现

这里添加一个函数即可在点击对端的dock栏应用图标后,会进入源端的onContinue()回调

对端接口实现

这里也是固定的代码,直接去官网cv就行,说实话这一章并不是很理解,感觉这一功能可有可恶,用得到的话就直接去看官方文档吧,这里就不给大家解释了,因为博主也不清楚

测试

我们来用虚拟机测试下

我这里直接同时启动这三台设备了

这里一定要选择允许,经过授权后才能生效

这里不小心整错了,两边的是折叠屏,我还以为是平板

不知道为什么失败了,后面再想解决方案吧

总结

本章结束后就要开始新篇章了,进阶篇准备以项目为主,基础篇明天总结下方便大家去直接食用,当然还是建议去看官方文档,比我写的要详细多了,我这里只是为了记录下我的学习过程

总历时1170分钟,包含写博客时间,下周开始进阶篇,希望感兴趣的朋友可以联系我

让我们进阶篇再见

相关推荐
无妄无望3 小时前
docker学习(4)容器的生命周期与资源控制
java·学习·docker
安当加密5 小时前
云原生时代的数据库字段加密:在微服务与 Kubernetes 中实现合规与敏捷的统一
数据库·微服务·云原生
Larry_Yanan6 小时前
QML学习笔记(四十二)QML的MessageDialog
c++·笔记·qt·学习·ui
能不能别报错6 小时前
K8s学习笔记(十九) K8s资源限制
笔记·学习·kubernetes
qq_264220896 小时前
K8s存储-PV与PVC
云原生·容器·kubernetes
十安_数学好题速析7 小时前
倍数关系:最多能选出多少个数
笔记·学习·高考
vue学习7 小时前
docker 学习dockerfile 构建 Nginx 镜像-部署 nginx 静态网
java·学习·docker
Lynnxiaowen9 小时前
今天我们开始学习python语句和模块
linux·运维·开发语言·python·学习