文档

基础配置

更新时间:

本文介绍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 *************
    })
  }
  // 省略其它代码
}

  • 本页导读 (0)
文档反馈