【每日学点鸿蒙知识】Charles抓包、lock文件处理、WebView组件、NFC相关、CallMethod失败等

ops/2024/12/26 23:13:40/

1、HarmonyOS系统中如何使用Charles抓包?

在HarmonyOS操作系统中,使用Charles进行抓包的步骤如下:

在Charles中设置代理。

  • 首先,在Charles的菜单栏上选择“Proxy”→“Proxy Settings”,然后填入代理端口(例如8888,也可以使用其他端口),并勾选“Enable transparent HTTP proxying”。这样便完成了在Charles上的设置。
  • 可以在“Help”→“Local IP Address”中查看本机的IP地址,或者使用cmd中的ipconfig命令来查看。设置手机代理。
  • 选择连接的Wi-Fi网络,右击选择“修改网络”,然后勾选“显示高级选项”,输入服务器主机名和服务器端口,点击保存。
  • 安装SSL证书。在电脑上选择“Help”→“SSL Proxying”→“Install Charles Root Certificate”。如果系统有安全防护设置,可能需要输入账号密码。按照提示安装Charles证书。
  • 配置SSL抓取域名。在Charles中,找到“Proxy”→“SSL Proxying Settings…”,并启用SSL代理(Enable SSL Proxying)。
  • 在Host字段设置通配符"*"(如果要抓取特定域名,则在此处填写特定域名),通常端口为4431。

完成以上步骤后,就可以开始抓取手机系统上的数据包了。
请确保在进行这些设置时,手机和电脑都连接到同一网络,并且手机的开发者选项已启用,以便安装和信任Charles证书。

2、项目在不同电脑上,有些文件会修改或者增加一些配置,这种情况怎么处理?

build-profile.json5、harmony/oh-package-lock.json5、harmony/entry/oh-package-lock.json5

以上3个文件会自动修改或增加配置
还有yarn.lock文件也是,不删除直接yarn install就报错,删除后install就没问题,并且文件有修改,主要是路径、版本的改变
这种情况是因为每个人的项目所在的路径不一样吗,或者是Windows、Mac的原因?有没有什么影响呢,我不提交git可以吗

解答:

  1. 以上3个文件每台电脑编译后会有区别,但对整个项目没有影响,可以直接在git忽略掉不提交。
  2. yarn.lock是lock当前项目所依赖的各个包的版本。
    yarn install报错是因为lock的版本和本地项目中依赖包的版本不一样。(你更新了别人上传的lock,你本地是你自己的依赖包)

yarn文件中的未指定具体版本(默认获取最新),那么两个开发者之间就有可能会下载到不同版本的依赖包,两个开发者所对应的本地包和yarn.lock文件就会不同,install的时候就会报错。
将yarn.lock删掉重新install,会重新install并生成新的yarn.lock文件,是一种临时的解决方式,yarn.lock这个文件创造出来的初衷就是为了让多端的开发者都能保持统一的依赖包版本(避免因为依赖包不同导致发生问题)。
所以要么yarn中指定依赖包具体版本号并定期维护更新版本。么每次git更新的时候对比本地包和yarn.lock中的版本那里不同进行调整。

3、Web组件怎么判断当前url已经成功加载?

Web({ src: this.url, controller: this.controller }) Web组件怎么判断当前url已经成功加载?
.onErrorReceive((event) =\>是失败的情况,成功加载的情况是在哪判断?

Web在网页加载完成时触发该回调onPageEnd方法,具体文档可以参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5

4、HarmonyOS @ohos.nfc.controller模块不存在,无法引用?

APP需要调用NFC功能,按照官方文档import controller from '@ohos.nfc.controller’报错The default system capabilities of devices phone, tablet, 2in1 do not include SystemCapability.Communication.NFC.Core. Configure the capabilities in syscap.json. <ArkTSCheck>

在某具体的设备型号上,能力可能超出工程默认设备定义的能力集范围,如果需要使用此部分能力,需要额外配置自定义的syscap。具体配置请参考SysCap开发指导:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/syscap-0000001774120846#ZH-CN_TOPIC_0000001813657848__syscap%E5%BC%80%E5%8F%91%E6%8C%87%E5%AF%BC
注意,配置完成之后,需要重启一下DevEco Studio,引用即可生效。

系统能力和API:
在这里插入图片描述

![[【每日学点鸿蒙知识】24.10.01-1.png]]

设备与支持能力集:
在这里插入图片描述

设备与SDK能力的对应:
在这里插入图片描述

5、HarmonyOS aki::Value::CallMethod失败?

TS定义如下类:

export class XavAudioOutputConfig {bitrate: EXavAudioBitrate = EXavAudioBitrate.kbps128;
}export class XavCompileConfig {audioConfig: XavAudioOutputConfig;metadata: string = '';constructor() {this.audioConfig = new XavAudioOutputConfig();}
}

在TS层创建XavCompileConfig对象,然后通过aki传递到C++层,调用如下方法时发生crash。

static void LogCompileInfo(napi\_value config)
{auto compileConfig = aki::Value(config);auto audioConfig = compileConfig.CallMethod(“audioConfig”);
}

Value Value::CallMethod方法中的jsCallback.CallMethod(env, recv, std::forward<Args>(args)…)返回值为空,但实际上audioConfig不为空。

compileConfig.CallMethod(“audioConfig”); 这个audioConfig不是方法,在JS层是个对象,callmethod函数是调用JS方法的,而audioConfig并不是类成员函数


http://www.ppmy.cn/ops/145235.html

相关文章

Electron【详解】菜单 Menu

顶部菜单 因顶部菜单款式传统&#xff0c;且不同系统的配置不同&#xff0c;建议在页面中自行实现菜单&#xff0c;而不采用 Electron 自带的菜单方案。 主进程中 import { Menu } from electron const template [{ role: appMenu }] const menu Menu.buildFromTemplate(te…

springboot462学生心理压力咨询评判(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装学生心理压力咨询评判软件来发挥其高效地信息处理的作用&am…

mybatis SqlSessionFactory

SqlSessionFactory 有六个方法创建 SqlSession 实例。通常来说&#xff0c;当你选择其中一个方法时&#xff0c;你需要考虑以下几点&#xff1a; 事务处理&#xff1a;你希望在 session 作用域中使用事务作用域&#xff0c;还是使用自动提交&#xff08;auto-commit&#xff0…

Jmeter 分布式压测部署--常见坑以及解决方案

JMeter 是性能测试的利器&#xff0c;而分布式压测更是应对高并发场景的必备技能。然而&#xff0c;在实际部署中&#xff0c;初学者常遇到种种问题&#xff0c;导致压测效果不理想甚至失败。你是否也曾因配置错误而耗费时间&#xff1f;别急&#xff0c;这篇文章为你全面解析 …

源码分析之Openlayers中GeometryCollection类

概述 本文主要介绍GeometryCollection类,GeometryCollection类继承于Geometry类,关于Geometry类,参考这篇文章源码分析之Openlayers中Geometry基类介绍 GeometryCollection类就是一组几何对象的集合. 源码分析 GeometryCollection类源码实现 GeometryCollection类源码实现…

母婴用品系统|Java|SSM|JSP|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

git 项目初始化

这里记录下idea2024 加 git 初始化项目的流程。 首先idea新建项目基于版本管理的项目&#xff1a; 第二步 输入远程仓库路径&#xff0c;然后点击clone。 第三步 输入密钥&#xff0c;然后点击log in。之前的版本是输入账号密码。但是没啥区别。 如果输入错了会有个弹框…

Layui数据表格开启前端排序切换功能实现Demo

备注 分页一般情况下必须得增加排序条件&#xff0c;不然排序可能会出现问题 采用的前端框架是Layui、后端是SpringBoot、Mybatis、数据库是PostgreSQL pgsql排序需注意null值 – 表示null排在有值行的前面 select * from tbl order by id nulls first; – 表示null排在有值行…