region切换

本文介绍HarmonyOS SDK的region切换功能。

region切换

当用户在不同的国家地区时,需要根据地域情况选择合适的HTTPDNS服务节点,region切换功能提供了地域切换功能,SDK会根据用户选择的地域,选择合适的服务节点处理服务调度和域名解析请求。

应用可以根据用户的地理位置情况,设置合适的region。

SDK提供了两种方式设置region,一种是初始化配置时:

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { httpdns, Region } 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,
      // ************* 初始化配置region begin *************
      region: Region.SG,
      // ************* 初始化配置region end *************
    })
  }

  // 省略其它代码
 }

一种是动态切换:

import { httpdns, HttpDnsError, Region } from '@aliyun/httpdns';

const ACCOUNT_ID = '这里需要替换为阿里云HTTPDNS控制台的Account ID';

httpdns.getService(ACCOUNT_ID).then((service) => {
  // ************* 动态切换region begin *************
  service.changeRegion(Region.HK)
  // ************* 动态切换region end *************
}).catch((e: HttpDnsError) => {
  console.error(`失败 ${e.code} ${e.message}`);
});

应用在设计时,建议主动存储设置的region,以便在初始化配置时,设置给HTTPDNS的region和HTTPDNS上次的region保持一致。

当前region有五个值:

  • Region.MAINLAND:中国内地地区

  • Region.HK:中国香港地区,东南亚区域建议选择此region

  • Region.SG:新加坡地区,除了中国、欧洲、美洲、东南亚地区都建议选择此region

  • Region.DE:德国地区,欧洲地区建议选择此region

  • Region.US:美国地区,美洲地区建议选择此region