uni-app i18n 进行国际化 安卓版本 只要切换了语言就会无限制白屏重启
uni-app i18n 进行国际化 安卓版本 只要切换了语言就会无限制白屏重启
产品分类
uniapp/App
PC开发环境
操作系统 | 版本号 |
---|---|
Mac | 15.4 |
手机环境
系统 | 版本号 | 厂商 | 机型 |
---|---|---|---|
Android | Android 10 | vivo | vivo X30 pro |
页面类型
vue
vue版本
vue2
打包方式
云端
项目创建方式
HBuilderX
App下载地址或H5网址
https://www.pgyer.com/f664a65680bc9c4230805da691c7296b
示例代码
import Vue from 'vue'
import VueI18n from 'vue-i18n'
Vue.use(VueI18n)
const LANGUAGE = uni.getStorageSync('LANGS') || uni.getSystemInfoSync().language || 'ru'
const i18n = new VueI18n({
locale: LANGUAGE,
fallbackLocale: 'ru',
messages: {
'zh_CN': require('@/locale/cn.json'),
'zh': require('@/locale/cn.json'),
'ru': require('@/locale/ru.json'),
'en': require('@/locale/ru.json'),
}
});
let gloubTimes = null
const i18nPlugin = {};
i18nPlugin.install = function(Vue, options) {
Vue.mixin({
methods: {
changeLanguage(language = 'zh-CN') {
uni.setLocale(language == 'ru'? 'ru': 'zh-Hans')
uni.setStorageSync('LANGS', language)
this._i18n.locale = language
},
},
});
Vue.prototype._i18n = i18n;
}
//
export {
i18n,
i18nPlugin
}
操作步骤
使用i18n 进行国际化,然后使用click 事件执行切换语言
this.changeLanguage('ru')
就会白屏,然后进入无限重启,只有删除重新安装才可以
预期结果
使用i18n 进行国际化,然后使用click 事件执行切换语言
this.changeLanguage('ru')
就会白屏,然后进入无限重启,只有删除重新安装才可以
实际结果
使用i18n 进行国际化,然后使用click 事件执行切换语言
this.changeLanguage('ru')
就会白屏,然后进入无限重启,只有删除重新安装才可以
bug描述
多语言 使用vi18n 插件国际化 ,只要切换了语言就会无限制白屏重启
所有安卓手机都是这样的
更多关于uni-app i18n 进行国际化 安卓版本 只要切换了语言就会无限制白屏重启的实战教程也可以访问 https://www.itying.com/category-93-b0.html
安卓的所有版本只要切换了语言就会无限制白屏重启
更多关于uni-app i18n 进行国际化 安卓版本 只要切换了语言就会无限制白屏重启的实战教程也可以访问 https://www.itying.com/category-93-b0.html
能否新建一个空项目引入这个插件试试,还有问题的话上传一下
回复 恭喜n发财: 4.56的版本不会,4.57的版本就会,
2025-04-10 00:02:39.350 [WARNING:] QMetaObject::connectSlotsByName: No matching signal for on_searchRefresh_clicked()
2025-04-10 00:02:46.427 [INFO:] Upgrade::isFallbackedVersion ?
2025-04-10 00:02:46.427 [INFO:] (checkupdate comparepluginversion) “hbuilder.root” in “/Applications/HBuilderX.app/Contents/HBuilderX/update/backup/root/hbuilder.root”
2025-04-10 00:02:46.429 [INFO:] (checkupdate comparepluginversion about) compare ( “4.57.2025032507” ) about version( 4.56.2025031210 ) in about package.json
2025-04-10 00:02:46.429 [INFO:] Upgrade::isFallbackedVersion return false
2025-04-10 00:02:46.429 [INFO:] Upgrade::canFallback::check( “/Applications/HBuilderX.app/Contents/HBuilderX/update/backup/root/hbuilder.root” ) exits?
2025-04-10 00:02:46.429 [INFO:] Upgrade::canFallback::check( “/Applications/HBuilderX.app/Contents/HBuilderX/update/.data” ) exits?
2025-04-10 00:02:46.429 [INFO:] Upgrade::canFallback::check( “/Applications/HBuilderX.app/Contents/HBuilderX/update/.data” ) exits return true
@BFC
2025-04-10 00:02:46.427 [INFO:] Upgrade::isFallbackedVersion ?
2025-04-10 00:02:46.427 [INFO:] (checkupdate comparepluginversion) “hbuilder.root” in “/Applications/HBuilderX.app/Contents/HBuilderX/update/backup/root/hbuilder.root”
2025-04-10 00:02:46.429 [INFO:] (checkupdate comparepluginversion about) compare ( “4.57.2025032507” ) about
查询日志看到这个,只要点了切换,就无限转圈白屏重启重复
使用https://ext.dcloud.net.cn/plugin?id=6462 测试例验证未发现问题
其他手机设备是否可以复现你描述的问题?请提供下测试项目我们这边排查下
项目在里面
和代码无关,只要进入页面 写了uni.setLocale(‘en’) 就会无限重启,设置的时候 执行uni.setLocale(‘en’) ,然后再进入页面的时候如果还是uni.setLocale(‘en’) 就会一直重启
大佬,你好有没有4.15的sdk?【报Bug】Uni小程序Android端 com.taobao.weex.bridge.WXBridge.nativeResetWXBridge方法报错,导致APP闪退 - DCloud问答
回复 d***@163.com: 直接升级到最新版本就行,4.15 好早的版本了,我是不想本地打包,所以一直跟着版本走,本地打包好麻烦
回复 LOOKINGFFuture: 19:49:46.682 文件查找失败:‘commands’ at pages\manage\printer\printerjobs.js:1 19:49:46.696 文件查找失败:‘dayjs’ at libs\publicTools.js:53 19:49:46.707 文件查找失败:‘dayjs’ at pages\publics\settingPassword.vue:10 19:49:46.719 文件查找失败:‘dayjs/plugin/quarterOfYear’ at libs\publicTools.js:988
运行demo示例报错 你看下
这个问题的根本原因是安卓平台上语言切换时应用状态处理不当导致的。以下是关键分析:
- 问题根源:
- 安卓系统在语言切换时会触发应用重启,而uni-app的i18n切换逻辑没有正确处理这种场景
- 当前代码中直接修改locale会导致状态不一致
- 解决方案:
changeLanguage(language = 'zh-CN') {
// 先更新storage
uni.setStorageSync('LANGS', language);
// 使用uni.reLaunch完全重启应用
uni.reLaunch({
url: '/pages/index/index'
});
}