methods: {
change(val) {
this.language = val;
setLanguage(val);
uni.setLocale(val);
},
},

- 发布:2022-08-03 09:27
- 更新:2023-01-30 16:01
- 阅读:2220
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.4.18
手机系统: Android
手机系统版本号: Android 12
手机厂商: 华为
手机机型: mate 30 pro
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_PRIVILEGED\"/>"
以上是我配置的权限,主要调用蓝牙和位置功能,其中位置功能如果是使用期间允许的话,我切换语言,APP会重启,并且会弹窗重新授权位置权限,可能是华为手机有
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
"<uses-permission android:name=\"android.permission.BLUETOOTH_PRIVILEGED\"/>"
以上是我配置的权限,主要调用蓝牙和位置功能,其中位置功能如果是使用期间允许的话,我切换语言,APP会重启,并且会弹窗重新授权位置权限,可能是华为手机有
预期结果:
我期望的是APP不进行重启或者重启后不进行新的授权
我期望的是APP不进行重启或者重启后不进行新的授权
实际结果:
APP进行重启,并且使用期间允许的位置许可,系统进行了新的权限索取,云打包后会出现这个环境
APP进行重启,并且使用期间允许的位置许可,系统进行了新的权限索取,云打包后会出现这个环境
bug描述:
uni.setLocale()会重启APP应用,并且如果之前的位置授权是使用期间授权,切换语言后,还会自动弹出位置权限授权. 定位权限开启后开发环境下定位会弹出三次,如果只选择使用期间允许,并且打包后 重新设置语言还会再次弹出
开发环境下,会弹出三个位置授权弹窗,并且 切换语言不会再次弹出位置授权,但是云打包后,切换语言会再一次弹出位置授权弹出

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
设置语言,不重启怎么切换?

zhaoyu2020 - 一只小小鸟
主要是set会重启的话, 这个set在哪里使用合适 ?
例如: 打开app > 进入app > 请求api 获取语言 > set >重启app
这样不是很怪异吗?
6***@qq.com (作者)
底层 我也不太清楚,微信都不需要重启微信,就可以切换的
2022-08-03 14:12
6***@qq.com (作者)
原生的应该都不需要重启的 只是切换语言包就可以了
2022-08-03 14:12
6***@qq.com (作者)
但是我们如果自己做的话 很多组件我们也改不了
2022-08-03 14:13