最近项目在做多语言,最后在调试时候发现莫名其妙的每次app第一次打开webview的页面后语言都失效了,重新设置一下语言之后就可以了,搞得很晕,查找原因为:
在Android7.0之前WebView的渲染是通过webkit来实现的。但是在7.0之后Chrome应用将用于呈现WebView第三方Android应用中的任何/所有内容由于Chrome这里是作为一个单独的应用程序,所以app设置的Local对他无效,,Chrome还会把语言变成设备的Local设置。然后多语言就会失效.
解决办法:在所有的包含webview的界面重新设置一下语言,
private void initLangeuage() {
String lan = LanguageUtils.getUserLanguageSetting();//读取语言设置
LogUtils.LogD(MyApplication.class, "================之前选择的语言 : " + lan);
LanguageUtils.saveLanguageSetting(LanguageUtils.getLocalFromCustomLang(lan));
}