【每日学点鸿蒙知识】数据迁移、大量图片存放、原生自定义键盘调用、APP包安装到测试机、photoPicker顶部高度

news2025/1/2 22:33:32
1、迁移(克隆)手机中经过 ArkData (方舟数据管理)服务持久化后的数据?

在用户手动迁移(克隆)手机数据至另一台设备后,使用 ArkData (方舟数据管理)服务持久化的数据是否会同步迁移至新设备中?
例如:调用 用户首选项 flush 方法进行持久化的数据。

针对应用沙箱数据,HarmonyOS NEXT提供“数据迁移框架”统一调度应用数据迁移任务
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-data-migration-overview-V5

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、HarmonyOS 项目中大量图片资源存放位置最佳实践?

项目中存在大量的图片资源,华为是有最佳实践方案放置目录,目前项目工程存在base/media与rawfile两个目录,最佳实践放在哪个目录下?

可以根据需求来选择

  • base目录:base目录是默认存在的目录,二级子目录element用于存放字符串、颜色、布尔值等基础元素,media、profile存放媒体、动画、布局等资源文件。目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。通过指定资源类型(type)和资源名称(name)引用。
  • rawfile目录:支持创建多层子目录,子目录名称可以自定义,文件夹内可以自由放置各类资源文件。目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件ID。通过指定文件路径和文件名引用。
3、HarmonyOS H5页面怎么调用原生自定义键盘?

对javaScriptProxy和runJavaScript封装,实现JSBridge通信方案。适用于H5调用原生侧函数。可以参考:https://gitee.com/harmonyos/codelabs/tree/master/SelectContact

这个链接中有可供参考的demo。demo可参考如下:Web(xxx)

.onShowFileSelector((event) => {
  console.warn(’…MyFileUploader onShowFileSelector invoked’);

  console.warn(’…invoke camera’)
  this.invokeCamera(uri => {
    console.warn(’…uri: ’ + uri)
    event?.result.handleFileList([uri]);
  });
  return true;
})

invokeCamera(callback?: (uri: string) => void) {
  const context = getContext(this) as common.UIAbilityContext
  context.startAbilityForResult({
    action: “ohos.want.action.imageCapture”,
    parameters: {
      callBundleName: “com.example.mydemo”
    }
  }, (err: BusinessError, data: common.AbilityResult) => {
    if (err && err.code != 0) {
      console.error(“imageCapture error:” + ${JSON.stringify(err)});
      return;
    }
    console.warn(“imageCapture data:” + ${JSON.stringify(data)});
    let uri = data?.want?.parameters?.resourceUri;
    if (callback && uri) {
      callback(uri.toString());
    }
  })
}

结合Web组件的onShowFileSelector事件,已经能够拉起系统摄像机并返回给h5的input标签,并自动触发了其onchange事件。
对于“ohos.want.action唤起键盘”可参考文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-ability-wantconstant-V5

根据问题描述,示例代码如下:

<!--index.html-->
  <!DOCTYPE html>
  <html lang="en-gb">
  <head>
  <title>WebView MessagePort Demo</title>
  </head>

  <body>
  <h1>Html5 Send and Receive Message</h1>
  <h3 id="msg">Receive string:</h3>
  <h3 id="msg2">Receive arraybuffer:</h3>
  <div style="font-size: 10pt; text-align: center;">
  <input type="button" value="Send String" onclick="showKeyboard();" /><br/>
  </div>
  </body>
  <script src="index.js">
  </script>
  </html>

  import web_webview from '@ohos.web.webview';
@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  ...
  Web({ src: $rawfile('index.html'), controller: this.controller })
  .onShowFileSelector((event) => {
  console.warn(’…MyFileUploader onShowFileSelector invoked’);

  console.warn(’…invoke keyboard’)
  this.invokeKeyboard(uri => {
  console.warn(’…uri: ’ + uri)
  event?.result.handleFileList([uri]);
});
return true;
})

invokeKeyboard(callback?: (uri: string) => void) {
  const context = getContext(this) as common.UIAbilityContext
  context.startAbilityForResult({
    action: “ohos.want.action.dial”,
    parameters: {
      callBundleName: “com.example.mydemo”
    }
  }, (err: BusinessError, data: common.AbilityResult) => {
    if (err && err.code != 0) {
      console.error(“imageCapture error:” + ${JSON.stringify(err)});
      return;
    }
    console.warn(“imageCapture data:” + ${JSON.stringify(data)});
    let uri = data?.want?.parameters?.resourceUri;
    if (callback && uri) {
      callback(uri.toString());
    }
  })
}
}
4、HarmonyOS 怎样把生成的app包,安装到测试手机上?

现在app功能开发完成了,想要提交给测试部分测试,构建了app包,但是不知道怎么让测试机安装这个包

可通过开放性测试的方式,经应用市场将.app安装到测试手机上。
开放性测试指导文档:https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-Guides/agc-betatest-introduction-0000001071477284

APP:
在这里插入图片描述

元服务:
在这里插入图片描述

5、HarmonyOS 应该如何拿到photoPicker顶部的固有高度?

目前暂时没有API或相关工具支持实现获取photoPicker顶部的固有高度。photoPicker顶部的高度为56vp,可以基于此验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2268120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos 7.6 安装mysql 5.7

卸载mysql 之前服务器上一直是mysql8&#xff0c;因为不经常使用&#xff0c;而且8的内存占用还挺高的&#xff0c;所以想降低到5.7&#xff0c;腾出点运行内存 停止服务 # 查询服务的状态 systemctl status mysqld # 停止服务 systemctl stop mysqld随后再次查询状态 查询…

大数据学习之Redis 缓存数据库二,Scala分布式语言一

一.Redis 缓存数据库二 26.Redis数据安全_AOF持久化机制 27.Redis数据安全_企业中该如何选择持久化机制 28.Redis集群_主从复制概念 29.Redis集群_主从复制搭建 30.Redis集群_主从复制原理剖析 31.Redis集群_哨兵监控概述 32.Redis集群_配置哨兵监控 33.Redis集群_哨兵监控原理…

Elasticsearch:使用 Ollama 和 Go 开发 RAG 应用程序

作者&#xff1a;来自 Elastic Gustavo Llermaly 使用 Ollama 通过 Go 创建 RAG 应用程序来利用本地模型。 关于各种开放模型&#xff0c;有很多话要说。其中一些被称为 Mixtral 系列&#xff0c;各种规模都有&#xff0c;而一种可能不太为人所知的是 openbiollm&#xff0c;这…

【日常开发】Git Stash使用技巧

文章目录 引言一、git stash 基础命令&#xff08;一&#xff09;存储当前工作区的修改&#xff08;二&#xff09;查看存储列表 二、查看存储的内容&#xff08;一&#xff09;查看特定存储的详细内容&#xff08;二&#xff09;查看特定存储修改的文件列表 三、恢复存储的修改…

GXUOJ-算法-第三次作业

1.基础练习 Huffman树 问题描述 GXUOJ | 基础练习 Huffman树 代码解析 #include<bits/stdc.h> using namespace std; int main(){int n;cin>>n;priority_queue<int,vector <int>,greater<int> >pq;for(int i0;i<n;i){int value;cin>>…

04-微服务02

我们将黑马商城拆分为5个微服务&#xff1a; 用户服务 商品服务 购物车服务 交易服务 支付服务 由于每个微服务都有不同的地址或端口&#xff0c;相信大家在与前端联调的时候发现了一些问题&#xff1a; 请求不同数据时要访问不同的入口&#xff0c;需要维护多个入口地址…

vue导入导出excel、设置单元格文字颜色、背景色、合并单元格(使用xlsx-js-style库)

npm i xlsx-js-style <template><button click"download">下载 Excel 表格</button><el-table :data"tableData" style"width: 100%"><el-table-column prop"date" label"日期" width"180…

AI文献阅读ChatDOC 、ChatPDF 哪个好?

作为AI产品的深度使用者&#xff0c;基本每天都在使用AI。AI诞生后仿佛给所有的产品打开了新世界大门。当然AI在文献阅读方面自然也不会缺席。 先来简单对比一下ChatDOC vs ChatPDF 从表格里可以看到ChatDOC与ChatPDF都是基于GPT的产品&#xff0c;但在功能上ChatDOC还是比Chat…

小程序基础 —— 10 如何调试小程序代码

如何调试小程序代码 在进行项目开发的时候&#xff0c;不可避免需要进行调试&#xff0c;那么如何调试小程序呢&#xff1f; 打开微信开发者工具后&#xff0c;有一个模拟器&#xff0c;通过模拟器能够实时预览自己写的页面&#xff0c;如下&#xff1a; 在上部工具栏中有一个…

vue+echarts实现疫情折线图

效果&#xff1a; 代码&#xff1a; <<template><div><div id"left1" style "height:800px;width:100%"></div></div> </template><script> //疫情数据//export default {data() {return {data:{//疫情数据…

使用arduino从零做一辆ROS2Jazzy的阿克曼小车---电机驱动篇

本项目采用 Arduino Mega2560 Pro 作为主控开发板&#xff0c;电机驱动器选用 TB6612FNG&#xff0c;并配备了 12V 电源、两个直流减速电机和一个舵机。未来计划通过嘉立创将各模块集成到一个 PCB 板上&#xff0c;提升系统的集成度和稳定性。 本文将聚焦于电机驱动部分&#x…

基于源码剖析:深度解读JVM底层运行机制

每日禅语 佛说&#xff0c;给你修路的&#xff0c;是你自己&#xff1b;埋葬你的&#xff0c;也是你自己&#xff1b;帮助你的&#xff0c;是你自己&#xff1b;毁灭你的&#xff0c;也是你自己&#xff1b;成就你的&#xff0c;自然还是你自己。所以佛说&#xff1a;自作自受&…

算法进阶:贪心算法

贪心算法是一种简单而直观的算法思想&#xff0c;它在每一步选择中都采取在当前状态下最优的选择&#xff0c;以期望最终得到全局最优解。贪心算法通常适用于一些具有最优子结构的问题&#xff0c;即问题的最优解可以通过一系列局部最优解的选择得到。 贪心算法的基本思路是&a…

Hive刷分区MSCK

一、MSCK刷分区 我们平时通常是通过alter table add partition方式增加Hive的分区的&#xff0c;但有时候会通过HDFS put/cp命令或flink、flum程序往表目录下拷贝分区目录&#xff0c;如果目录多&#xff0c;需要执行多条alter语句&#xff0c;非常麻烦。Hive提供了一个"…

Windows API Set:那些“只存在但不被使用“的DLL

API Set 是什么&#xff1f; 想象一下&#xff0c;Windows就像一个大型图书馆&#xff0c;而API Set就是这个图书馆的索引系统。但这个索引系统非常特别&#xff1a;它是直接内置在Windows加载器中的"虚拟目录"。 // 一个典型的API Set映射示例 api-ms-win-core-mem…

【Java 数据结构】合并两个有序链表

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. 题目 2. 解析 3. 代码实现 4. 小结 1. 题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示…

图像处理-Ch6-彩色图像处理

Ch6 彩色图像处理 无广告更易阅读&#xff0c;个人博客点此进入<– 文章目录 Ch6 彩色图像处理彩色基础彩色模型(Color models)RGB(red, green, blue)CMY & CMYK(cyan, magenta, yellow/and black)HSI(hue, saturation, intensity)HSV(hue, saturation, value) 颜色空…

03.HTTPS的实现原理-HTTPS的工作流程

03.HTTPS的实现原理-HTTPS的工作流程 简介1. HTTPS的工作流程1.1. TCP的工作流程1.1.1. 三次握手的详细步骤1.1.2. 三次握手的作用 1.2. HTTPS的工作流程1.2.1. HTTPS与TCP的关系1.2.2. HTTPS的工作流程 2. 公钥和私钥的作用3. 对称密钥的生成和交换4. 对称加密和非对称加密的区…

隧道FM广播信号、隧道内调频广播信号覆盖方案选择

一、为什么汽车驶入隧道内&#xff0c;就听不到FM调频广播信号了 隧道是一个半封闭的管状结构&#xff0c;有很强的电磁屏蔽效应&#xff0c;汽车进入隧道后&#xff0c;汽车收音机就会出现沙沙的噪声&#xff0c;这是由于隧道内的调频广播信号变弱甚至无信号&#xff0c;导致车…

基于SSM的“电器网上订购系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“电器网上订购系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页 商品类型 商品管理 订单展示 商品购物车 登录页面 …