1. 网络类型简介
移动设备一般都具备移动网络和无线WIFI的连接能力,有些还可以接入有线以太网,这些网络可以根据需要随时切换。鸿蒙APP可以自动适应上述的网络,一般来说,会优先使用WIFI或者有线以太网,移动网络因为要收费,不会首选使用。但是在某些特殊情形下,可能要求必须使用某一种网络,比如必须使用蜂窝网络,这时候就需要显示的配置一下,指定app使用该网络类型。
2. Web组件及控制器常用方法
网络连接相关能力位于connection模块下,使用如下的方式导入:
import connection from '@ohos.net.connection'
connection模块包括了众多的操作方法,就本文而言,重点需要掌握的是如下四个:
1)getAllNets(): Promise<Array<NetHandle>>
获取所有处于连接状态的网络列表,使用Promise方式作为异步方法。
2)getConnectionProperties(netHandle: NetHandle): Promise<ConnectionProperties>
获取netHandle对应的网络的连接信息,使用Promise方式作为异步方法。
3)getNetCapabilities(netHandle: NetHandle): Promise<NetCapabilities>
获取netHandle对应的网络的能力信息,使用Promise方式作为异步方法。
4)setAppNet(netHandle: NetHandle): Promise<void>;
绑定App到指定网络,绑定后的App只能通过指定网络访问外网,使用Promise方式作为异步方法。
3. 获取网络连接信息并选择一种绑定到应用
本示例会列出所有激活中的网络,然后可以选择其中一种绑定到当前APP,最后可以通过访问指定的网页验证是否绑定成功,示例运行后的初始界面如下所示:
下面详细介绍创建该应用的步骤。
步骤1:创建Empty Ability项目。
步骤2:在module.json5配置文件加上对权限的声明:
"requestPermissions": [
{
"name": "ohos.permission.GET_NETWORK_INFO"
},
{
"name": "ohos.permission.INTERNET"
}
]
这里添加了获取WIFI信息以及访问互联网的权限。
步骤3:在Index.ets文件里添加如下的代码:
import connection from '@ohos.net.connection';
import web_webview from '@ohos.web.webview'
@Entry
@Component
struct Index {
//连接、通讯历史记录
@State msgHistory: string = ''
scroller: Scroller = new Scroller()
//网络类型列表
@State netShowArray: Array<SelectOption> = new Array<SelectOption>()
//网络句柄数组
netHandleArray: Array<connection.NetHandle> = new Array<connection.NetHandle>()
//选中的网络序号
selectNetIndx: number = 0
//要测试的网址
@State webUrl: string = "http://192.168.100.100:8080/index"
//显示网页的控制器
controller: web_webview.WebviewController = new web_webview.WebviewController()
build() {
Row() {
Column() {
Tex