HarmonyOS 鸿蒙Next: 鸿蒙应用已在module.json中添加了"name": "ohos.permission.INTERNET",但在真机运行时仍然显示没有该权限
HarmonyOS 鸿蒙Next: 鸿蒙应用已在module.json中添加了"name": “ohos.permission.INTERNET”,但在真机运行时仍然显示没有该权限 鸿蒙应用已经在module.json5添加了"name": "ohos.permission.INTERNET"权限在真机运行时还是显示没有权限,是不是说还需要写个用户权限弹窗?
"requestPermissions": [
{
"name": "ohos.permission.INTERNET",
},
{
"name": "ohos.permission.FILE_ACCESS_PERSIST"
},
{
"name": "ohos.permission.READ_MEDIA",
"reason": "$string:READ_MEDIA_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.WRITE_MEDIA",
"reason": "$string:WRITE_MEDIA_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
}],
数据请求方法
export function getVodData(url: string): Promise<string> {
return new Promise((resolve, reject) => {
console.log("kaishi请求数据")//1
let httpRequest = http.createHttp();
let options: http.HttpRequestOptions = {
method: http.RequestMethod.GET,
expectDataType: http.HttpDataType.STRING,
};
httpRequest.request(urlRoot+url, options)
.then((response) => {
const vodStr = response.result.toString();
createVodDataFile("/vodDB.db", vodStr);
console.log("请求成功请求数据")//2
resolve(vodStr);
})
.catch((err: Error) => {
console.log("err:" + err);
console.log("vodData请求数据shibai")//3
reject(err);
})
.finally(() => {
httpRequest.destroy();
});
});
}
运行结果还是报错
02-11 17:28:28.437 23459-23459 A03D00/top.gua...niMovie/JSAPP pid-23459 I kaishi请求数据
02-11 17:28:31.815 23459-23459 A03D00/top.gua...niMovie/JSAPP top.guadou.miniMovie I err:Error: Permission denied
02-11 17:28:31.815 23459-23459 A03D00/top.gua...niMovie/JSAPP top.guadou.miniMovie I vodData请求数据shibai
02-11 17:28:31.815 23459-23459 A03D00/top.gua...niMovie/JSAPP top.guadou.miniMovie I 请求数据err:Error: Permission denied
为什么呢
更多关于HarmonyOS 鸿蒙Next: 鸿蒙应用已在module.json中添加了"name": "ohos.permission.INTERNET",但在真机运行时仍然显示没有该权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html
ohos.permission.INTERNET 网络权限不需要弹框授权。
在HarmonyOS中,即使你在module.json
文件中添加了"name": "ohos.permission.INTERNET"
,应用在真机运行时仍可能显示没有该权限。这可能是由于以下原因:
-
权限申请未在代码中动态请求:从HarmonyOS 3.0开始,部分敏感权限不仅需要在
module.json
中声明,还需要在代码中动态请求。例如,ohos.permission.INTERNET
属于普通权限,通常只需要在配置文件中声明即可,但某些真机设备或系统版本可能要求动态请求。 -
配置文件中权限声明位置错误:确保权限声明在
module.json
的"reqPermissions"
字段中,且格式正确。例如:{ "module": { "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ] } }
-
真机设备系统版本或配置文件不一致:某些真机设备可能运行的是较旧的HarmonyOS版本,或者配置文件与开发环境不一致,导致权限未正确应用。
-
应用签名问题:如果应用未正确签名,可能会导致权限无法正常生效。确保应用已使用正确的签名文件进行签名。
-
设备权限管理设置:有些设备可能在系统设置中限制了应用的网络权限,检查设备的应用权限管理设置,确保已授予应用网络访问权限。
-
系统缓存问题:有时系统缓存可能导致权限未及时更新,尝试清理应用缓存或重启设备。
-
SDK或IDE版本问题:确保使用的DevEco Studio和HarmonyOS SDK版本与目标设备的系统版本兼容,避免因版本不一致导致的权限问题。
如果以上检查均无问题,但仍无法解决,建议进一步排查日志或确认设备具体配置。