HarmonyOS鸿蒙Next中把网络音频下载到本地沙箱失败

HarmonyOS鸿蒙Next中把网络音频下载到本地沙箱失败 因为我的音频文件过大,元服务遭不住,所以我把音频放到我的git仓库里面,再使用的时候调用网络。但是每次调用的时候都差不多有1秒的延迟,尤其再循环播放音频的是hi尤其明显。所以我想把他再调用的时候直接下载到本地,循环的时候直接用本地沙箱的

下载到本地报错2300998 It is not allowed to access this domain

有没有办法解决

4 回复

开发者你好,当前的报错为2300998 不允许访问域名,开发者可以参考下以下方案进行排查:

  1. 检查域名白名单是否配置,当用户使用元服务访问网络资源时,需在AGC配置服务器域名进行访问。
  2. 域名只支持HTTPS和WSS协议,需配置网络明文传输权限(针对HTTP请求),在network_config.json配置文件中,设置cleartextTrafficPermitted字段为true明确允许明文传输。
  3. 检查设备是否开启开发者模式,并在设备设置中找到,开发中元服务豁免管控选项并启用,并在元服务代码中通过has.getServiceInfoSync验证豁免状态。
  4. 本地调试临时方案:可使用localhost或127.0.0.1作为请求地址(需服务端运行在本地)。
  5. 长期方案:使用HTTPS代理若需访问外部HTTP服务,搭建本地HTTPS代理服务器,将HTTP请求转换为HTTPS,并且在AGC中配置代理服务器的域名。

【背景知识】 为规范元服务请求域名范围,提升元服务上架审核效率和平台合规经营安全性,HarmonyOS支持开发者在元服务上架申请开放使用的服务器域名。后续当用户使用元服务时,系统将根据该元服务的域名配置进行域名访问,为用户提供安全可靠的网络环境,从而提升用户信任度和满意度。

更多关于HarmonyOS鸿蒙Next中把网络音频下载到本地沙箱失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


元服务可能不像普通app那样可以

在HarmonyOS Next中,网络音频下载到本地沙箱失败,通常涉及权限或路径问题。请检查是否已申请ohos.permission.INTERNET网络权限和ohos.permission.WRITE_MEDIA存储权限。下载时需使用正确的沙箱路径,如context.filesDir。确保网络连接正常,且目标服务器支持访问。检查代码中下载逻辑与API调用是否符合ArkTS规范。

错误码2300998通常表示网络请求被安全策略拦截,可能是由于以下原因:

  1. 未配置网络权限:在module.json5中检查是否声明了网络权限:
"requestPermissions": [
  {
    "name": "ohos.permission.INTERNET"
  }
]
  1. 域名未加入网络安全配置:在module.json5中需要配置允许访问的域名:
"module": {
  "requestPermissions": [...],
  "metadata": [
    {
      "name": "ohos.network.security.policy",
      "value": "{\"domain\": \"your-git-domain.com\"}"
    }
  ]
}
  1. 使用正确的下载方式:建议使用@ohos.request API进行下载:
import request from '@ohos.request';

let downloadConfig: request.DownloadConfig = {
  url: '你的音频URL',
  filePath: '本地沙箱路径/audio.mp3'
};

request.downloadFile(context, downloadConfig)
  .then((downloadTask: request.DownloadTask) => {
    // 下载成功处理
  })
  .catch((err: Error) => {
    console.error('下载失败:', err);
  });
  1. 检查沙箱路径权限:确保使用的文件路径在应用沙箱范围内,如context.filesDir

  2. 音频文件缓存策略:首次下载后可将文件路径存储到Preferences中,后续直接读取本地文件。

注意:确保Git仓库的域名正确配置在网络安全策略中,且音频文件URL可通过浏览器直接访问。

回到顶部