2***@qq.com
2***@qq.com
  • 发布:2026-01-04 15:44
  • 更新:2026-01-14 10:40
  • 阅读:463

修改manifest.json文件mp-weixin部分的修改(定位权限配置),在运行到微信开发者工具后会被自动复原

分类:uni-app

在“微信小程序配置”可视化界面中,通过取消再选中“位置接口”,才能让permission和requiredPrivateInfos字段暂时出现在源码中。有时候( "requiredPrivateInfos": ["getLocation" ])这个也不显示,就没法定位

运行到微信开发者工具后(手写代码也是一样),这些添加的配置项再次消失,每次都要我重新点“位置接口”?

我的问题:

1.不能永久保存吗?

  1. 为什么有时候选完“位置接口”,没有 "requiredPrivateInfos": ["getLocation" ]配置?
2026-01-04 15:44 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据知识库内容,您的问题涉及微信小程序定位权限配置在manifest.json中的持久性问题:

  1. 不能永久保存的原因
    HBuilderX可视化界面操作"位置接口"时,本应自动写入mp-weixin.permissionrequiredPrivateInfos字段。但IDE存在缓存机制,当您切换配置项时可能未正确同步到源码。正确做法是直接在manifest.json源码视图中手动添加

    "mp-weixin": {  
     "permission": {  
       "scope.userLocation": {  
         "desc": "需要获取您的地理位置"  
       }  
     },  
     "requiredPrivateInfos": ["getLocation"]  
    }  
  2. requiredPrivateInfos不显示的原因

    • 微信基础库2.32.3+已支持隐私接口,但uni-app需手动配置该字段
    • 可视化界面存在逻辑缺陷:当同时配置permissionrequiredPrivateInfos时,IDE可能只渲染其中一个
    • 官方文档明确要求必须在app.json声明,但HBuilderX的UI层未完全同步此逻辑

解决方案
① 关闭HBuilderX可视化配置界面
② 直接编辑manifest.json源码,在mp-weixin节点下完整添加上述两个字段
③ 保存后重新运行微信开发者工具,配置将永久生效

注意:微信小程序隐私规范要求必须配置__usePrivacyCheck__: true,否则即使配置了权限也会被拦截。

内容为 AI 生成,仅供参考
爱豆豆

爱豆豆 - 办法总比困难多

我本地多次运行后scope.userLocation都是存在的 hbx版本为4.87

  • 2***@qq.com (作者)

    谢谢,我之前没学习过小程序,所以没太懂这一块

    manifest.json微信小程序配置中选了位置接口,每次也显示"scope.userLocation"


    "requiredPrivateInfos": [

    "getLocation"

    ]

    但是没有这个getLocation,之前我都是每次重新取消再勾上位置接口,有时候就显示了,不显示我就得直接在源码视图中改。但都是一次性的,运行停止微信开发者工具后再次运行又得再来一次

    2026-01-05 09:32

2***@qq.com

2***@qq.com (作者)

重新再选位置接口,这次我才能定位?

这个manifest.json文件不能固定微信小程序配置吗?我每次运行后都要重新取消再勾上位置接口

爱豆豆

爱豆豆 - 办法总比困难多

那就直接在manifest.json的源码试图中写上固定的 会被编译到app.json中。 manifest.json修改后重新运行 就好了

  • 2***@qq.com (作者)

    非常感谢你,但是我每次停止微信开发者工具后,再运行到小程序模拟器微信开发者工具,以下添加的代码都会消失,这里不可以固定吗?还是说就是这样开发的?

    添加的 "permission": {

    "scope.userLocation": {

    "desc": "位置信息将用于考勤打卡定位"

    }

    },

    "requiredPrivateInfos": [

    "getLocation"

    ]

    2026-01-06 09:48

2***@qq.com

2***@qq.com (作者)

[已删除]

[已删除]

启动微信小程序模拟器,然后关闭小程序模拟器,修改你的 HBuilderX配置,观察 产物是否正常,可能是小程序模拟器改变了你的值,你可以提供复现工程并说明操作步骤。如果你认为是 bug,请编辑问题,说明你的HBuilderX 版本 vue 版本

  • 2***@qq.com (作者)

    HBuilderX 版本 4.87,微信开发者工具也是最新的2.01.2510250

    manifest.json配置显示版本:"vueVersion": "3"Vue 3

    2026-01-14 16:19

  • [已删除]

    回复 2***@qq.com: 启动微信小程序模拟器,然后关闭小程序模拟器,修改你的 HBuilderX配置,观察 产物是否正常,可能是小程序模拟器改变了你的值,你可以提供复现工程并说明操作步骤。

    2026-01-15 14:25

  • [已删除]

    回复 2***@qq.com: 请提供复现工程,如果是 bug 会修复

    2026-01-15 14:25

2***@qq.com

2***@qq.com (作者)

目前我也不知道哪里的问题?每次运行到小程序模拟器manifest.json都会回到原始状态?
导致这些配置丢失( "permission": {
"scope.userLocation": {
"desc": "位置信息将用于考勤打卡定位"
}
},
"requiredPrivateInfos": [
"getLocation"
])

我需要在编译完毕前,微信开发者工具弹出前,把这些配置上面的定位配置手动加上,编译后的文件中app.json才会有那些配置,小程序才能使用定位功能。
manifest.json配置显示版本:"vueVersion": "3"Vue 3
PS D:\xxxx\yudao-ui-admin-uniapp> cat package.json | Select-String "vue"

"type-check": "vue-tsc --noEmit",  
"vue": "^3.4.21",  
"vue-i18n": "9.1.9",  
"vue-router": "4.5.1",  
"@vue/runtime-core": "^3.4.21",  
"@vue/tsconfig": "^0.1.3",  
"vue-tsc": "^3.0.6"

要回复问题请先登录注册