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; "语句,当代码执行到该语句的时候就会自动断点。

结语

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

大家加油~

目录
相关文章
|
小程序 Android开发 iOS开发
ISO钉钉小程序小程序webview打开nextjs应用异常
ISO钉钉小程序小程序webview打开nextjs应用异常
320 3
|
Dart Android开发
鸿蒙Flutter实战:03-鸿蒙Flutter开发中集成Webview
本文介绍了在OpenHarmony平台上集成WebView的两种方法:一是使用第三方库`flutter_inappwebview`,通过配置pubspec.lock文件实现;二是编写原生ArkTS代码,自定义PlatformView,涉及创建入口能力、注册视图工厂、处理方法调用及页面构建等步骤。
919 0
|
存储 移动开发 Android开发
使用kotlin Jetpack Compose框架开发安卓app, webview中h5如何访问手机存储上传文件
在Kotlin和Jetpack Compose中,集成WebView以支持HTML5页面访问手机存储及上传音频文件涉及关键步骤:1) 添加`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限,考虑Android 11的分区存储;2) 配置WebView允许JavaScript和文件访问,启用`javaScriptEnabled`、`allowFileAccess`等设置;3) HTML5页面使用`<input type="file">`让用户选择文件,利用File API;
|
安全 网络安全 API
kotlin安卓开发JetPack Compose 如何使用webview 打开网页时给webview注入cookie
在Jetpack Compose中使用WebView需借助AndroidView。要注入Cookie,首先在`build.gradle`添加WebView依赖,如`androidx.webkit:webkit:1.4.0`。接着创建自定义`ComposableWebView`,通过`CookieManager`设置接受第三方Cookie并注入Cookie字符串。最后在Compose界面使用这个自定义组件加载URL。注意Android 9及以上版本可能需要在网络安全配置中允许第三方Cookie。
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
JavaScript 前端开发 Android开发
kotlin开发 webview如何在收到JS调用后,native返回数据给到JS
这段内容描述了在Hybrid App开发中,使用Kotlin的Compose构建的Web视图(WebView)如何通过JsBridge实现JavaScript与原生代码的交互
|
消息中间件
多个不同的app应用间应该如何进行消息推送呢?
现在很多公司做app应用都会用到推送,推送这个不多说了,怎么做网上一堆,用的比较多的还数极光推送(Jpush)以及百度推送,目前我们使用Jpush,文档方面质量是差了点。。这个先不吐槽,主要现在的app应用很多公司不是做单个,而是多个,比如打车软件有司机端和用户端,运输类应用会有司机端、车主端、货主...
1104 0
|
8月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1431 139
|
8月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
639 137