首页 > 其他分享 >调试 Web 页面时如何替换请求响应结果

调试 Web 页面时如何替换请求响应结果

时间:2023-06-26 10:44:48浏览次数:46  
标签:Web overrides 响应 Safari 替换 调试 页面

开发 js sdk 项目的时候,经常会希望快速检查我们的改动在真实场景中的表现。我们不可能直接更新到生产环境,于是很多人会考虑配置代理,并替换响应内容。

但代理配置起来并不方便,比如在 ios/android 真机上开关代理需要手动输入ip、端口。我们还有一些更便捷的方法:

  1. Chrome local overrides
  2. Safari 响应本地覆盖
  3. Android 远程调试
  4. iOS 远程调试

1 Chrome local overrides

Chrome dev tools 允许我们替换请求的响应内容,操作非常简单:

  1. 打开 dev tools 的 Sources 功能
  2. 在 Page tab 中右键单击希望替换的内容
  3. 点击 Save for overrides,会要求你提供一个目录供保存 local overrides 文件
  4. 前往 Overrides 选项卡即可查看、编辑创建的 local overrides
  5. 编辑完成记得保存,刷新页面生效

注意被 local overrides 覆盖的响应,图标上会出现一个紫色的小圆点。

2 Safari 响应本地覆盖

Safari 上也有相同的功能:

  1. 打开 Safari 开发者工具的 source 功能
  2. 左侧资源列表中,在想要替换的资源上右键单击,选择创建响应本地覆盖
  3. 在上面会出现一个新的“本地覆盖”栏目,点击即可在右侧区域查看、编辑
  4. 同样的,保存并刷新后生效

3 Android 远程调试

和在桌面端一样,Android 设备上打开的 Web 页面也可以用一样的方法替换资源:

  1. 用数据线或者网络,将待调试设备连接上 adb
  2. 电脑上 Chrome 访问 chrome://inspect 页面
  3. 如果连接正常,此时页面上应该会列出所有可调试页面,点击对应页面下的 inspect 按钮
    1. 请确保待调试应用在前台
    2. 如果待调试页面是 app 内的 webview,请确保 app 是 debug build
  4. 后续操作和前文一样

4 Safari 远程调试

同样的,iOS 设备也可以用这种方式在远程调试时替换资源,但有一些额外的前提条件。

  1. iOS 版本升级到 16 以上,因为 iOS 16 给 WKWebview 和 JSContext 新增了一个 inspectable 属性,允许真机远程调试 web 内容。在这之前只有本地构建的版本才能调试,门槛太高
  2. 如第一点所述,需要客户端在构建 debug 版时,启用 webview 的 inspectable 属性

满足前提条件后,只需要把设备连线到 Mac 上,点击“开发” -> “设备名” -> “待调试 web 页面” 即可。

Safari 远程调试有的时候刷新不出设备,解决起来有点玄学。基本就是重启 Safari、重启 App、重启手机、重启电脑挨个试一遍,没发现啥规律。

对比代理

本地覆盖和代理两种方案互有优劣,因此也有各自的适用场景:

代理:

  • 可以共享给其他非技术人员,设置中配置代理服务器即可
  • 适合用于建立小范围的共享体验环境

本地覆盖:

  • 无需任何配置,连线即可,编辑简单
  • 适合开发者个人本地开发、调试

标签:Web,overrides,响应,Safari,替换,调试,页面
From: https://www.cnblogs.com/alanslab/p/diao-shi-web-ye-mian-shi-ru-he-ti-huan-qing-qiu-xi.html

相关文章

  • VS Code扩展Browser Preview调试Web
    在扩展库里添加后,选择好html网页后执行(Openin BrowserPreview)右键点击: 打开例子为:yeoman创建officeexcel ......
  • 【网络】【HTTP】既然有 HTTP 协议,为什么还要有 WebSocket?
    1  前言平时我们打开网页,比如购物网站某宝。都是点一下「列表商品」,跳转一下网页就到了「商品详情」。从HTTP协议的角度来看,就是点一下网页上的某个按钮,前端发一次HTTP请求,网站返回一次HTTP响应。这种由客户端主动请求,服务器响应的方式也满足大部分网页的功能场景。但......
  • 使用 Debian、Docker 和 Nginx 部署 Web 应用
    前言本文将介绍基于Debian的系统上使用Docker和Nginx进行Web应用部署的过程。着重介绍了Debian、Docker和Nginx的安装和配置。第1步:更新和升级Debian系统通过SSH连接到服务器。更新软件包列表:sudoaptupdate升级已安装的软件包:sudoaptupgrade第2步......
  • springboot+vue基于Web的社区医院管理服务系统,附源码+数据库+论文+PPT,适合课程设计、
    1、项目介绍在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括社区医院管理服务系统的网络应用,在外国线上管理系统已经是很普遍的方式,不过国内的管理系统可能还处于起步阶段。社区医院管理服务系统具有社区医院信息管理功能的选择。社区医院管理服务系统......
  • ActiveX 控件在过去是非常流行的技术,但近年来已经逐渐被其他技术所取代。由于其局限性
    ActiveX控件是一种可重用的软件组件,它们基于微软的COM(ComponentObjectModel)技术,并被广泛应用于Windows平台上的应用程序开发。ActiveX控件可以包含图形用户界面元素、功能模块、数据处理等,并提供给其他应用程序使用。下面是关于ActiveX控件的一些常见信息:安装和注册:使用A......
  • centos7-datax和datax-web安装以及安装中问题的解决
    一、下载这些软件(见) 系统变量设置(安装maven和jdk略)vi /etc/profileJAVA_HOME=/usr/local/jdk1.8.0_40CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binDATAX_HOME=/usr/local/dataxPATH=$PATH:$DATAX_HOME/bin exportMAVEN_HOME=/usr/local/apache-maven-3......
  • 部署PHP+Swoole实现自动更新项目的GitHub Webhooks
    前言在项目开发过程中,每次需要手动登录服务器并执行gitpull命令来更新代码,这样非常繁琐和耗时。为了简化这个过程,我们可以利用GitHub的Webhooks功能,结合PHP和Swoole来编写一个自动更新项目的接口脚本。实现步骤以下是实现自动更新项目的GitHubWebhooks的步骤:首先,你得有一个......
  • 其他——27页面滚动渐入动画
    1.安装动画库;npminstallanimate.css2、在main.js中引入;importanimatefrom"animate.css";3、给对应的模块设置好想要的animate动画类名,通过一个变量控制是否添加/移除该类名,达到重复播放的效果; 4、在mounted中给对应的模块创建监听,控制这个变量,进入区域为true,反之......
  • electron 开启 webview
    main.js中添加webview配置信息constmainWindow=newBrowserWindow({width:800,height:600,webPreferences:{preload:path.join(__dirname,'preload.js'),webviewTag:true,//开启webview}})index.html<style>......
  • C#使用webview2来获取网页响应的一些内容
    想要获取webview2和网页之间的响应内容,需要在CoreWebView2InitializationCompleted事件中重写一下WebResourceResponseReceivedAsync事件,如下privatevoidwebView2_CoreWebView2InitializationCompleted(objectsender,CoreWebView2InitializationCompletedEventArgse)......