Hybrid App 应用 开发中 9 个必备知识点复习(WebView / 调试 等) 下

简介: Hybrid App 应用 开发中 9 个必备知识点复习(WebView / 调试 等) 下

五、在 Android 平台下如何调试 WebView?

1. 在 Chrome 浏览器上调试

参考文章:《Android调试webview》

1.1 条件:

  • 在 Android 设备或模拟器运行 Android4.4 或更高版本,Android 设备上启用 USB调试模式
  • Chrome 30 或更高版本。更强大的 WebView 界面调试功能需要 Chrome31 或更高版本。
  • Android 应用程序中的 WebView 配置为可调试模式

1.2 Android 代码中配置 WebView 为可调试:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
    WebView.setWebContentsDebuggingEnabled(true);  
}  

注意 web 调测不受 app manifest 文件中 debuggable 标记状态的影响,如果希望仅 debuggabletrue 时才能使用 web 调测,那么运行时检测此标记,如下:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
    if ( 0 != ( getApplcationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE ) ) {  
        WebView.setWebContentsDebuggingEnabled(true);  
    }  
}  

1.3 手机开启 USB 调试选项,并用 USB 连接电脑:

开启 Android 手机的开发者选项,一般在 系统设置 - Android版本 进行多次点击会触发开启开发者选项,然后进入开发者选项页面,开启USB调试。

为了避免每次调试时看到此警告,勾选“总是允许从这台计算机”,并单击“确定”。

1.4 在 Chrome 中启用设置“USB web debugging”(不会影响WebView):

在 Chrome 上访问 chrome://inspect/#devicesabout:inspect 访问已启用调试的 WebView 列表,需要能上谷歌

然后在 WebView 列表中选择你要调试的页面,点击“ Inspect ”选项,跟调试 PC 网页一样,使用 Chrome 控制台进行调试。

1.5 小技巧:

(1)访问 chrome://inspect/#devices 如果 chrome 没有检测到 Remote Target 中的页面,可能需要安装一下 Chrome 的 ADB 插件,也可以在 Chrome 访问 https://chrome-devtools-frontend.appspot.com

(2)对于腾讯系的 APP,默认采用 X5内核 ,我们可以在 APP 内部打开 https://debugx5.qq.com/ 来使用它的Vconsole调试工具进行调试。 å

2. 使用 DebugGap 调试

参考文章:《Android下的webview调试》

2.1 Windows 下载 DebugGap 并配置:

在电脑上面下载 Windows 版本的 DebugGap 软件包(下载链接:DebugGap),下载完成后解压下来。

安装完成后,运行 DebugGap ,开始配置:

  • 通常情况下,DebugGap 可以自动获取IP,并设置默认的端口,如果没有,你可以手动设置;
  • 点击“连接”按钮启动各种客户端的侦听器;

2.2 在客户端上配置:

在调试项目中要进行测试的 HTML 界面中引入 debuggap.js

<script src="debuggap.js" type="text/javascript"></script>

当调试项目的加载时,您的应用程序将会有一个蓝色的地方,点击会出现一个四叶三叶草的东西,点击“配置”,显示配置页面。输入与远程 DebugGap 上的主机和端口相同的主机和端口,例如 192.168.1.4:11111,然后点击“连接”按钮。

1.4电脑端远程 DebugGap 将检测即将到来的客户端,开发人员可以单击每个客户端进行调试。

六、在 iOS 平台下如何调试 WebView?

参考文章:《iOS之Safari调试webView/H5页面》

一般我们通过 Mac 的 Safari浏览器 来调试,但是要注意两点:

  • 如果调试的是 APP 中 WebView 的页面,则需要这个 APP 的包支持调试,如果不能调试,需要让 iOS 开发人员重签名 APP(可能需要将我们 iOS 设备的 ID 写入到可信任设备列表中,然后使用 iTunes 安装客户端提供的测试包即可)。
  • 如果调试的是 H5 页面,可以直接在手机的 Safari浏览器 打开直接调试。

下面开始说说在 Mac 上如何调试:

1. 开启 Safari 开发菜单

先将 iPhone 连接到 Mac,在 Mac 的 Safari 偏好设置中,开启开发菜单。具体步骤为:Safari -> 偏好设置… -> 高级 -> 勾选在菜单栏显示“开发”菜单。

2. iPhone 开启 Web检查器

具体步骤为:设置 -> Safari -> 高级 -> Web 检查器。

3. 调试 APP 内的 WebView

参考文章:《前端 WEBVIEW 指南之 IOS 调试篇》

在 Safari-> 开发中,看到自己的设备以及 WebView 中网页,点击后即可开启对应页面的 Inspector ,可以用来进行断点调试。

七、在内嵌版调试过程中,Fiddler 或 Charles 能起到什么作用?

这两者都是强大的抓包工具,原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。

代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。

Fiddler 或 Charles 的主要作用有:

  • 可以代理请求,用来查看页面发送的请求和接收的响应;
  • 可以修改请求的响应,用来模拟自己想要的数据;
  • 可以模拟网络请求的速度;
  • 可以代理服务器的静态资源请求,指向本地文件,省去频繁发布 H5 包,达到快速调试目的;

补充链接:《Fiddler工具使用介绍一》

八、调试企业微信、微信和钉钉版时,可以使用哪些工具?

1. 调试企业微信、微信

2. 调试钉钉

3. 通用

  • Fiddler 或 Charles,可以拦截接口替换文件,来调试应用;

九、常见的调试技巧有哪些?

1. Chrome 控制台调试

参考文章:《前端常见调试技巧篇总结(持续更新...)》

1.1 Source 面板断点调试 JS

从左到右,各个图标表示的功能分别为:

  • Pause/Resume script execution:暂停/恢复脚本执行(程序执行到下一断点停止)。
  • Step over next function call:执行到下一步的函数调用(跳到下一行)。
  • Step into next function call:进入当前函数。
  • Step out of current function:跳出当前执行函数。
  • Deactive/Active all breakpoints:关闭/开启所有断点(不会取消)。
  • Pause on exceptions:异常情况自动断点设置。

1.2 Element 面板调试 DOM:

右击元素,选择 break on 选项:

  • Subtree modifications 选项,是指当节点内部子节点变化时断点

  • Attributes modifications 选项,是指当节点属性发生变化时断点

  • node removal 选项,是指当节点被移除时断点

2. console 调试

参考文章:《Console调试常用用法》

2.1 显示信息的命令:

console.log("normal");         // 用于输出普通信息
console.info("information");   // 用于输出提示性信息
console.error("error");        // 用于输出错误信息
console.warn("warn");          // 用于输出警示信息
console.clear();               // 清空控制台信息

2.2 计时功能:

console.time()console.timeEnd()

console.time("控制台计时器");
for(var i = 0; i < 10000; i++){
    for(var j = 0; j < 10000; j++){}       
}
console.timeEnd("控制台计时器")

2.3 信息分组:

console.group()console.groupEnd()

console.group("第一组信息");
    console.log("第一组第一条:我的博客");
    console.log("第一组第二条:CSDN");
console.groupEnd();
console.group("第二组信息");
    console.log("第二组第一条:程序爱好者QQ群");
    console.log("第二组第二条:欢迎你加入");
console.groupEnd();

2.4 将对象以树状结构展现:

console.dir() 可以显示一个对象所有的属性和方法:

var info = {
    name : "Alan",
    age : "27",
    grilFriend : "nothing",
    getName : function(){
        return this.name;
    }
}
console.dir(info);

2.5 显示某个节点的内容:

console.dirxml() 用来显示网页的某个节点( node) 所包含的 html/xml 代码:

var node = document.getElementById("info");
node.innerHTML += "<p>追加的元素显示吗</p>";
console.dirxml(node);

2.5 统计代码被执行的次数:

使用 console.count()

function myFunction(){
    console.count("myFunction 被执行的次数");
}
myFunction();       //myFunction 被执行的次数: 1
myFunction();       //myFunction 被执行的次数: 2
myFunction();       //myFunction 被执行的次数: 3

2.6 输出表格:

console.table(mytable);

3. 调试各种页面尺寸

虽然把各种各样的手机都摆在桌子上看起来很酷,但却很不现实。但是,浏览器内却提供了你所需要的一切。进入检查面板点击“切换设备模式”按钮。这样,就可以在窗口内调整视窗的大小。

4. debugger 断点

具体的说就是通过在代码中添加" debugger; "语句,当代码执行到该语句的时候就会自动断点。

结语

对于初入混合应用开发的小伙伴,还有经常需要调试混合应用的小伙伴,相信会有帮助😁

大家加油~

目录
相关文章
|
5天前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
33 0
|
2月前
|
人工智能 文字识别 小程序
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。
|
3月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
3月前
|
IDE 开发工具 开发者
使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件
# 使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件 #鸿蒙开发工具 #DevEco Studio
306 1
|
3月前
|
人工智能 小程序 JavaScript
【一步步开发AI运动APP】十、微调优化内置运动分析器,灵活适配不同的应用场景
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用`ISportOptimizer`对内置运动分析器进行微调优化。相比小程序,APP框架(如uni-app)因技术差异,无法直接修改运动分析器参数,因此提供了统一的优化机制。开发者可通过`ISportOptimizer`获取和更新检测规则、动作样本等,灵活适应不同场景需求,如全民运动赛事的宽松模式或学生体测的严格模式。文中还提供了示例代码,展示如何对具体运动项目(如仰卧起坐)进行优化。需要注意的是,微调优化适用于标准动作的小范围调整,若动作变化过大(如花式跳绳),可期待后续自定义扩展功能。
|
3月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:健身App
本期分享一个健身App首页的布局实现,顶部采用Stack容器实现重叠背景与偏移效果,列表部分使用List结合Scroll实现可滚动内容。代码结构清晰,适合学习HarmonyOS布局技巧。
|
3月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:银行App
仓颉语言银行App项目分享,页面布局采用List容器,实现沉浸式体验与模块化设计。顶部资产模块结合Stack与Row布局,背景图与内容分离,代码清晰易懂;功能按钮部分通过负边距实现上移效果,圆角仅保留顶部;热门推荐使用header组件,结构更规范。整体代码风格与ArkTS相似,但细节更灵活,适合金融类应用开发。
|
10天前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
101 0
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
10天前
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段三
本文介绍了UI开发中的样式复用与组件构建技术,涵盖@Extend、@Styles和@Builder的使用方法,并通过Swiper轮播、Scroll滚动、Tabs导航等常用组件实现典型界面效果,结合生肖抽卡、小米轮播、回顶按钮等案例,展示实际应用技巧。
53 0
|
10天前
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二
本文介绍鸿蒙应用界面开发中的弹性布局(Flex)、绝对定位、层叠布局及ArkTS语法进阶,涵盖字符串拼接、类型转换、数组操作、条件与循环语句,并结合B站视频卡、支付宝首页等案例,深入讲解点击事件、状态管理与界面交互功能。
57 0
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二