HarmonyOS 自定义页面请求与前端页面调试

2023-11-08

一、自定义页面请求响应

Web 组件支持在应用拦截到页面请求后自定义响应请求能力。开发者通过onInterceptRequest()接口来实现自定义资源请求响应 。自定义请求能力可以用于开发者自定义 Web 页面响应、自定义文件资源响应等场景。

Web 网页上发起资源加载请求,应用层收到资源请求消息。应用层构造本地资源响应消息发送给 Web 内核。Web 内核解析应用层响应信息,根据此响应信息进行页面资源加载。

在下面的示例中,Web 组件通过拦截页面请求“https://www.intercept.com/test.html”,在应用侧代码构建响应资源,实现自定义页面响应场景。

● 前端页面 example.html 代码。

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>example</title></head><body><!-- 页面资源请求 --><a href="https://www.intercept.com/test.html">intercept test!</a></body></html>

● 应用侧代码。

// xxx.etsimport web_webview from '@ohos.web.webview';
@Entry@Componentstruct WebComponent {  controller: web_webview.WebviewController = new web_webview.WebviewController()  responseResource: WebResourceResponse = new WebResourceResponse()  // 开发者自定义响应数据  @State webData: string = '<!DOCTYPE html>\n' +  '<html>\n'+  '<head>\n'+  '<title>intercept test</title>\n'+  '</head>\n'+  '<body>\n'+  '<h1>intercept ok</h1>\n'+  '</body>\n'+  '</html>'  build() {    Column() {      Web({ src: $rawfile('example.html'), controller: this.controller })        .onInterceptRequest((event) => {          console.info('url:' + event.request.getRequestUrl());          // 拦截页面请求          if (event.request.getRequestUrl() !== 'https://www.intercept.com/test.html') {            return null;          }          // 构造响应数据          this.responseResource.setResponseData(this.webData);          this.responseResource.setResponseEncoding('utf-8');          this.responseResource.setResponseMimeType('text/html');          this.responseResource.setResponseCode(200);          this.responseResource.setReasonMessage('OK');          return this.responseResource;        })    }  }}

二、  使用 Devtools 工具调试前端页面

Web 组件支持使用 DevTools 工具调试前端页面。DevTools 是一个 Web 前端开发调试工具,提供了调试移动设备前端页面的能力。开发者通过setWebDebuggingAccess()接口开启 Web 组件前端页面调试能力,利用 DevTools 工具可以在 PC 端调试移动设备上的前端网页。

使用 DevTools 工具,可以执行以下步骤:

1.  在应用代码中开启 Web 调试开关,具体如下:

// xxx.etsimport web_webview from '@ohos.web.webview';
@Entry@Componentstruct WebComponent {  controller: web_webview.WebviewController = new web_webview.WebviewController();  aboutToAppear() {    // 配置web开启调试模式    web_webview.WebviewController.setWebDebuggingAccess(true);  }  build() {    Column() {      Web({ src: 'www.example.com', controller: this.controller })    }  }}

2.  将设备连接上电脑,在电脑端配置端口映射,配置方法如下:

// 添加映射 hdc fport tcp:9222 tcp:9222 // 查看映射 hdc fport ls

3.  在 PC 端 chrome 浏览器地址栏中输入 chrome://inspect/#devices,页面识别到设备后,就可以开始页面调试。调试效果如下:图 1 页面调试效果图

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HarmonyOS 自定义页面请求与前端页面调试 的相关文章

  • vue2项目实现excel文件导入导出和拖拽上传

    文章目录 一 excle文件导出 二 excel文件导入 三 文件拖拽上传 四 完整代码 文件导入导出实现逻辑图 一 excle文件导出 导出员工接口返回的是二进制流 axios配置responseType为blob接收二进制流文件为Blo
  • Web测试是在测什么?容易被忽视的小细节总结!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Vue:通过ref获取DOM元素

    一 场景描述 我们在页面的开发过程中 经常需要操作 dom 元素 来实现我们需要的效果 以往 js 中 我们是通过给 dom 添加 id 然后 通过 js 代码 document 来获取这个 dom 简写代码案例 h2 这里是h2标签 h2
  • HarmonyOS鸿蒙开发指南:容器组建 tabs开发指导

    目录 创建Tabs 设置Tabs方向 设置样式 显示页签索引 场景示例 创建Tabs 在pages index目录下的hml文件中创建一个Tabs组件 div class container div
  • 事件委托Tab栏切换

  • Fiddler工具 — 9.命令行和状态栏

    1 命令行 命令行在Fiddler的左下方的黑色窗口 也叫 QuickExec 可以调用 Fiddler的内置命令 这一系列内置的函数用于筛选和操作会话列表中的session 会话 虽然它不是很显眼 但用好它 会让你的工作效率提高 N 倍
  • Vue + Element-ui组件上传图片报错问题解决方案

    在使用Vue和Element ui组件上传图片时 可能会遇到一些报错问题 以下是一些常见的问题及解决方案 报错 TypeError Cannot read property name of undefined 解决方案 这个错误通常是因为在
  • Firefox浏览器-渗透测试插件推荐

    在日常工作中可能需要一些浏览器插件辅助我们做工作 下面是比较好的 当然不一定对你有用 找到适合自己的即可 FoxyProxy FoxyProxy是一个高级的代理管理工具 它完全替代了Firefox有限的代理功能 它提供比SwitchProx
  • CMAKE_MAKE_PROGRAM is not set 解读

    目录 CMAKE MAKE PROGRAM 未设置 错误原因 解决方案 示例1 GNU Make 示例2 Ninja CMakeLists txt 的结构 示例 CMakeLists txt 文件 总结 CMAKE MAKE PROGRAM
  • 【面试】 前端竞争压力大?揭秘让你们学后端的真实动机!

    前端开发属于程序员吗 网友是这样回答的 看完前端同学的评论 我悟了 你们让人都去学后端卷 然后减小前端竞争压力是吧 哈哈哈 你们这帮老6 于是我去拿出了我收藏的 某前端招聘JD来盘一盘 那些觉得 是个人都能干前端 的同学们想必已经熟练掌握了
  • Element-Puls中el-upload组件结合vue-draggable-plus实现上传支持拖拽排序(并保留el-upload原有样式、预览、删除)等功能

    展示效果 需求 需求想要一个可拖拽排序的图片列表 但是发现el upload虽然可以实现照片墙 但是没办法拖拽 实现思路 使用 vue draggable plus 拖拽插件 隐藏Upload原有的已上传文件列表 自定义上传后文件列表的样式
  • JS特效第74弹:旅游城市图片百叶窗切换React特效

    全屏的旅游城市景点图片滑动百叶窗轮播切换效果 先来看看效果 一部分关键的代码如下 div div
  • 如何给 unplugin-vue-components/vite 写一个简单的 resolver

    大部分工作 unplugin vue components 都已经处理好了 我们只需要接收组件名来判断是否是自己的组件 然后处理对应的导入逻辑 一共 3 个字段 as 重命名类似 import componentNameReName fro
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 每天10个前端小知识 <Day 8>

    1 Javascript中如何实现函数缓存 函数缓存有哪些应用场景 函数缓存 就是将函数运算过的结果进行缓存 本质上就是用空间 缓存存储 换时间 计算过程 常用于缓存数据计算结果和缓存对象 缓存只是一个临时的数据存储 它保存数据 以便将来对
  • Android SDK开发艺术探索(五)安全与校验

    一 前言 本篇是Android SDK开发艺术探索系列的第五篇文章 介绍了一些SDK开发中安全方面的知识 包括资源完整性 存储安全 权限校验 传输安全 代码混淆等知识 通过基础的安全配置为SDK保驾护航 探索SDK开发在安全方面的最佳实践
  • 低代码配置-组件列表设计

    过滤字段功能 配置了api 启用 输出配置 filter type Array default gt
  • 低代码-详情页组件设计

    效果图 详情页数据结构定义 layout 按钮数据 buttonLayout headButton 页头按钮 footButton 页脚按钮 详情页表单配置 config 配置组件列表 detailLayout 默认行为 进表单初始化 只展
  • 每天10个前端小知识 <Day 14>

    前端面试基础知识题 1 CSSOM树和DOM树是同时解析的吗 浏览器会下载HTML解析页面生成DOM树 遇到CSS标签就开始解析CSS 这个过程不会阻塞 但是如果遇到了JS脚本 此时假如CSSOM还没有构建完 需要等待CSSOM构建完 再去

随机推荐

  • Java同步方法及代码块

    同步方法及代码块 synchronized 同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问 所以我们只需要针对方法提出一套机制 这套机制就是synchronized关键字 它包括两种用法 synchronized
  • yolov5目标检测算法解析:基础网络模块

    Yolov5的模型定义分两个阶段 分别是基础模块设计阶段和完整模型搭建阶段 基础模块设计阶段 是基于pytorch架构的基本神经网络算子 进一步构造成具有特定功能和含义的自定义神经网络模块 完整模型搭建阶段 是通过结构化文件 利用基础模块
  • 初学者学习 JavaScript – JS 基础知识手册2023新版

    本手册的目的是迅速向你介绍JavaScript的基础知识 以便你可以开始编写应用程序 它并不包括JavaScript的所有理论和概念 而是只教授语言中最重要的构件 它包括变量 数据类型 函数 对象 数组和类 你还将学习如何结合它们来构建小型
  • ipad上有没有html编辑器,推荐:iPad上6款非常值得一试的工作软件

    得益于苹果出色的工业设计和优秀的用户体验 iPad已经成为了用户数量最多 最受欢迎的平板电脑 同时苹果App Store创造的一个良好的生态环境 也不断吸引越来越多的应用开发者为用户提供更多的优秀应用 下面为iPad用户介绍的 六款软件 都
  • 如何寻找二叉树任意处p、q的公共祖先

    算法思想 使用非递归的后序遍历 假设p在q的左边用栈保存二叉树的指针 栈 S 中全部元素都是当前指针 p 的祖先们 判断方法 先将栈复制到一个辅助栈 tempS 中 继续遍历到结点 q 的时候 将栈中元素从栈顶开始逐个和辅助栈 tempS
  • 力扣博文链接

    目录 树 堆 模拟 枚举 组合 链表 递归 宽搜 指针 进制 图论 分析 贪心 数学 构造 概率 排序 日期 KMP RMQ Trie树 对顶堆 扫描线 自动机 格雷码 字符串 思维题 逆序对 回文串 全排列 离散化 线段树 平衡树 单调栈
  • windows里的vscode 通过ssh远程到Linux服务器,显示matplotlib图形

    本地vscode安装插件 PYQT Integration 右键 py 选择 Run Current File in interactive Window 一些使用PyQt的步骤 conda activate py38 在自己的conda环
  • 用虚拟机安装linux程序

    其实这是一个很简单的工作 大牛不要嘲笑 这里只是写一个简单的流程 首先 是使用的软件 虚拟机程序Oracle VM VirtualBox http www oracle com technetwork server storage virt
  • IP地址的分类及子网掩码的计算

    目录 一 什么是IP地址 IP地址的作用及其种类 二 分类的IP地址 三 无分类编址 四 网络号 主机号和子网掩码的计算 一 1 IP地址 整个互联网中 分配给每一个主机在全世界范围内唯一的32位二进制码 2 IP地址的表示方法 为了可读性
  • Mybatis-Plus的详细使用

    一 MyBatisPlus概述 需要的基础 MyBatis Spring SpringMVC学完 为什么要学习呢 它可以节省我们大量的工作时间 所有的JDBC都可以自动化完成 JPA tk mapper MyBatisPlus 简介 是什么
  • 线上流量特训营:暴力引流10W+中小卖家流量破局技巧等

    新标题 突破流量瓶颈 线上流量特训营助力中小卖家引爆10W 流量的破局技巧 文章 引言 100字 线上流量特训营是一项旨在帮助中小卖家突破流量瓶颈的破局技巧 通过学习特训营提供的精选流量引爆策略 中小卖家可以迅速吸引超过10W的流量 实现业
  • L1-5 试试手气 (15 分)

    我们知道一个骰子有 6 个面 分别刻了 1 到 6 个点 下面给你 6 个骰子的初始状态 即它们朝上一面的点数 让你一把抓起摇出另一套结果 假设你摇骰子的手段特别精妙 每次摇出的结果都满足以下两个条件 1 每个骰子摇出的点数都跟它之前任何一
  • FWT 详解 知识点

    前言 扯淡 可以跳过 其实去年清华集训之后就想写这篇文章了 但是写了一会发现有点说不明白话 于是受限于语文水平一直没有写 前几天给人当面讲了一遍 感觉大概可以BB明白些了 picks的博客里就写着fwt怎么做 然而他并没有写为什么这样是对的
  • 【微服务架构】面向故障设计微服务架构

    微服务架构可以通过定义明确的服务边界隔离故障 但就像在每个分布式系统中一样 网络 硬件或应用程序级别问题的可能性更高 由于服务依赖关系 任何组件都可能对其消费者暂时不可用 为了最大限度地减少部分中断的影响 我们需要构建可以优雅地响应某些类型
  • 爬取上交所和深交所的年报问询函到Excel

    注意事项 需要安装一些包 如pdfminer pdfminer3k pdfplumber等 pdfminer不能解析上交所问询函 使用解析功能更为强大的pdfplumber可以解析 但是内容上可能会出现个别字重复的现象 pdfminer3k
  • 区间预测

    区间预测 MATLAB实现基于QRCNN BiGRU Multihead Attention多头注意力卷积双向门控循环单元多变量时间序列区间预测 目录 区间预测 MATLAB实现基于QRCNN BiGRU Multihead Attenti
  • Spring Boot 学习笔记整理

    spring boot 笔记 1 配置文件 1 application properties 2 application yml 作用 修改spring boot的默认设置 YAML 比XML和JSON更适合做配置文件 以数据为中心 2 Y
  • 解决鼠标右键没有文本

    解决鼠标右键没有文本文档 打开注册表 win r 输入 regedit 2 找到 txt 将默认值改为 txtfile 查看shellNew项是否存在 不存在新建 存在则改变 这个字符串值为空 F5刷新一下 或者
  • OLE接口详解

    所有 OLE Api 和接口的目的 本页 摘要 详细信息 常规 初始化和内存管理 远程处理 自定义服务 服务注册 DLL 服务器管理 杂项 COM 函数 命名 名字对象 结构化的存储 永久对象 每个事件的通知 统一数据传输 可查看对象 标准
  • HarmonyOS 自定义页面请求与前端页面调试

    一 自定义页面请求响应 Web 组件支持在应用拦截到页面请求后自定义响应请求能力 开发者通过onInterceptRequest 接口来实现自定义资源请求响应 自定义请求能力可以用于开发者自定义 Web 页面响应 自定义文件资源响应等场景