本文介绍HarmonyOS SDK的一些基础配置。
Context配置
由于SDK内部需要使用HarmonyOS的API进行数据存储,需要Context参数,所以在配置时,需要设置Context参数。
示例代码如下:
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { httpdns } from '@aliyun/httpdns';
const ACCOUNT_ID = '这里需要替换为阿里云HTTPDNS控制台的Account ID'
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// ************* 初始化配置 begin *************
httpdns.configService(ACCOUNT_ID, {
// 请务必配置harmony上下文
context: this.context,
});
// ************* 初始化配置 end *************
}
// 省略其它代码
}
重要
context是必选配置。如果不配置会导致HTTPDNS的服务节点无法保存,降低HTTPDNS服务的可用性。
是否使用HTTPS请求
通过HTTPDNS SDK解析域名时,我们默认是通过HTTP协议请求,如果需要使用HTTPS协议请求,需要将useHttps配置为true。
使用HTTPS协议的配置如下:
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { httpdns } from '@aliyun/httpdns';
const ACCOUNT_ID = '这里需要替换为阿里云HTTPDNS控制台的Account ID'
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
httpdns.configService(ACCOUNT_ID, {
context: this.context,
// ************* 初始化配置是否使用HTTPS请求 begin *************
useHttps: true,
// ************* 初始化配置是否使用HTTPS请求 end *************
});
}
// 省略其它代码
}
是否允许使用过期IP
SDK在解析域名时,会把解析结果缓存在内存中,过了TTL时间,则为过期IP,我们默认允许返回过期IP,如果你期望不使用过期IP,可将enableExpiredIp参数值配置为false。
不允许使用过期IP的配置如下:
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { httpdns } from '@aliyun/httpdns';
const ACCOUNT_ID = '这里需要替换为阿里云HTTPDNS控制台的Account ID'
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 配置HTTPDNS
httpdns.configService(ACCOUNT_ID, {
context: this.context,
// ************* 初始化配置是否允许使用过期IP begin *************
enableExpiredIp: false,
// ************* 初始化配置是否允许使用过期IP end *************
})
}
// 省略其它代码
}
是否开启本地缓存
通过 ebableDiskCache 配置项控制是否将解析结果存储在本地缓存中,默认为false,不开启。
当开启后,每次解析会把结果缓存到本地,当下次应用启动时,会从本地加载缓存解析结果,提高应用启动时获取解析结果的速度。本地缓存的解析结果不受是否允许使用过期IP配置控制,应用向SDK发起域名解析请求时,本地缓存即使过期也会使用。
开启本地缓存的配置如下:
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { httpdns } from '@aliyun/httpdns';
const ACCOUNT_ID = '这里需要替换为阿里云HTTPDNS控制台的Account ID'
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 配置HTTPDNS
httpdns.configService(ACCOUNT_ID, {
context: this.context,
// ************* 初始化配置是否开启本地缓存 begin *************
enableDiskCache: true,
// ************* 初始化配置是否开启本地缓存 end *************
})
}
// 省略其它代码
}
是否开启网络变化自动解析
配置当网络变化时,是否自动重新解析已解析的域名,默认为true,开启。
当网络变化时,以缓存的解析结果很有可能已经失效了,此时需要重新解析才能获取正确的结果。
关闭网络变化自动解析的配置如下:
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { httpdns } from '@aliyun/httpdns';
const ACCOUNT_ID = '这里需要替换为阿里云HTTPDNS控制台的Account ID'
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 配置HTTPDNS
httpdns.configService(ACCOUNT_ID, {
context: this.context,
// ************* 初始化配置是否开启网络变化自动解析 begin *************
reResolveCachedHostsAfterNetworkChanged: false,
// ************* 初始化配置是否开启网络变化自动解析 end *************
})
}
// 省略其它代码
}
超时配置
配置域名解析请求时的超时时长,默认为2000毫秒。
配置代码如下:
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { httpdns } from '@aliyun/httpdns';
const ACCOUNT_ID = '这里需要替换为阿里云HTTPDNS控制台的Account ID'
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 配置HTTPDNS
httpdns.configService(ACCOUNT_ID, {
context: this.context,
// ************* 初始化配置超时时长 begin *************
timeoutInMs: 3000
// ************* 初始化配置超时时长 end *************
})
}
// 省略其它代码
}
文档内容是否对您有帮助?