1.WebView 组件介绍
HarmonyOS
中的Web
组件是一种基于Web
技术的组件,可以在HarmonyOS
应用程序中嵌入Web内容。通过使用Web
组件,开发人员可以将Web
页面或应用程序嵌入到HarmonyOS
应用程序中,实现更丰富的用户界面和功能。
Web组件提供了一系列的API和工具,开发人员可以使用这些API和工具来控制和操作内嵌的Web
页面。例如,开发人员可以使用JavaScript
和CSS
来操作和样式化Web页面的元素,还可以使用HTML5的各种功能来实现各种交互和媒体功能。
Web
组件还支持与HarmonyOS
应用程序的其他部分进行通信和交互。开发人员可以使用JavaScript
和HarmonyOS
的API来实现应用程序的功能,例如访问设备的传感器、调用系统的功能等。此外,Web
组件还可以通过与应用程序的其他组件进行交互来实现更复杂的功能,例如在应用程序的其他组件中显示Web
页面的内容、发送和接收消息等。
功能 | 描述 |
---|---|
页面加载 | Web组件提供基础的前端页面加载能力,包括加载网络页面、本地页面、Html格式文本数据。 |
页面交互 | Web组件提供丰富的页面交互方式,包括设置前端页面深色模式,新窗口中加载页面,位置权限管理,Cookie管理,应用侧使用前端页面JavaScript等能力。 |
页面调试 | Web组件支持使用Devtools工具调试前端页面。 |
2.使用Web组件加载页面
- 2.1 加载网络页面
1、权限配置
1 | ts复制代码"requestPermissions": [ |
2、加载网页
1 | ts复制代码import web_webview from '@ohos.web.webview' |
- 2.2 加载本地页面
1、ets 文件
1 | ts复制代码// xxx.ets |
2、本地页面
1 | html复制代码<!-- local.html --> |
- 2.3 加载HTML格式的文本数据
1 | ts复制代码// xxx.ets |
3.设置基本属性和事件
3.1 设置深色模式
通过darkMode()接口可以配置不同的深色模式。
- WebDarkMode.Off模式表示关闭深色模式。
- WebDarkMode.On表示开启深色模式,且深色模式跟随前端页面。
- WebDarkMode.Auto表示开启深色模式,且深色模式跟随系统。
- forceDarkAccess()接口可将前端页面强制配置深色模式,且深色模式不跟随前端页面和系统。配置该模式时候,需要配置成
WebDarkMode.On
。
1 | ts复制代码// xxx.ets |
3.2 上传文件
HarmonyOS
中Web
组件的onShowFileSelector()
方法用于显示文件选择器,让用户选择文件。它可以用于在应用中上传文件或选择本地文件等操作。
1 | ts复制代码// xxx.ets |
1 | html复制代码<!DOCTYPE html> |
3.3 在新窗口中打开页面
开发者可以使用multiWindowAccess()
接口来设置网页是否可以在新窗口中打开。通过调用此接口并传入相应的参数,可以控制网页是否允许使用新窗口。
当网页请求在新窗口中打开时,应用将收到Web
组件的新窗口事件,可以通过onWindowNew()
接口来处理此事件。在此接口中,开发者可以根据需要创建新的窗口来处理Web组件的窗口请求。
1 | ts复制代码// xxx.ets |
1 | html复制代码 <!DOCTYPE html> |
3.4 管理位置权限
对于某个网站进行位置权限管理的过程中,开发者可以通过onGeolocationShow()
接口来向用户请求位置权限。该接口会触发一个位置权限请求对话框,用户可以选择是否授权该网站获取设备的位置信息。
Web
组件会根据用户的选择,将权限授予或拒绝。如果权限被授予,前端页面将能够获取设备的位置信息。如果权限被拒绝,前端页面将无法获取设备的位置信息。
在进行位置权限请求之前,开发者需要在应用的配置文件中添加ohos.permission.LOCATION
权限,以确保应用有权限获取设备的位置信息。
1 | html复制代码<!DOCTYPE html> |
1 | java复制代码// xxx.ets |
4.请求响应
4.1 前端代码
1 | html复制代码<!DOCTYPE html> |
4.2 应用侧代码
在HarmonyOS
中,onInterceptRequest()
是一个接口,用于拦截网络请求并进行处理。它是HarmonyOS
的网络框架提供的一种扩展机制,可以在网络请求发起之前拦截请求,并进行一些自定义的操作。
当一个网络请求发起时,HarmonyOS
的网络框架会首先调用onInterceptRequest()
接口。在该接口中,你可以对请求进行一些处理,例如修改请求的URL、添加请求头、修改请求参数等。还可以在此处拦截请求,返回自定义的响应结果,以实现一些常见的操作,如模拟网络请求,拦截广告请求等。
1 | java复制代码import web_webview from '@ohos.web.webview' |
5.web chrome调试
1、开启调试
在HarmonyOS中,setWebDebuggingAccess()
接口用于设置是否允许调试Web视图。
setWebDebuggingAccess()接口的语法如下:
1 | java复制代码setWebDebuggingAccess(boolean debuggable); |
参数debuggable
为boolean
型,表示是否允许调试Web视图。如果debuggable为true,则允许调试Web
视图;如果debuggable
为false
,则禁止调试Web视图。
此接口需要在合适的地方调用,例如在应用程序的入口Activity
中或者WebView
的初始化代码中调用。调用该方法后,系统将根据参数的值来决定是否允许调试Web视图。
2、 配置端口
1 | java复制代码// 添加映射 |
3、在PC端chrome
浏览器地址栏中输入chrome://inspect/#devices,页面识别到设备后,就可以开始页面调试
👀关注公众号:Android老皮!!!欢迎大家来找我探讨交流👀
本文转载自: 掘金