2017-02-24 8 views
1

나는 특히 현지화로 인해 Android N에서 WebView가 중단 된 것에 대해 질문 한 this에 대해 알고 있습니다. 나는 문제를 해결할 방법을 찾을 수 없다.WebView 언어 오류 Android N

this 그림에 표시된 것처럼, 7.1.1을 실행하는 픽셀 장치에는 두 가지 언어가 설정되어 있습니다. 자, 내 애플 리케이션에서 WebView에서 다음 URL을로드하려고 해요.

"https://accounts.google.com/ServiceLogin?<my-params>" 

제가주의하는 것은 페이지가 현재 로케일 언어 인 영어 대신 중국어로로드된다는 것입니다. 내 Chrome 데스크톱 (위와 동일한 계정으로 내 휴대 전화에 로그인)에서 위 링크를 열려고 시도했지만 중국어로도로드됩니다! Chrome의 설정으로 이동하여 언어 환경 설정이 Chrome에 나타나기 때문에 내 계정에 저장되었음을 확인했습니다.

나는이 같은 내 애플 리케이션에 setContentView()하기 전에 지역을 설정하려고 않았다

public static void setLocale(Locale locale){ 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.setLocale(locale); 
    Context context = MyApplication.getInstance(); 
    context.getResources().updateConfiguration(config, 
      context.getResources().getDisplayMetrics()); 
} 

하지만 헛된 있습니다. 로그 문을 넣으면 정확한 Localeen-US이 인쇄됩니다. WebView은 여전히 ​​중국어로 페이지를로드합니다. 어떻게 해결할 수 있습니까?

답변

0

문제는 안드로이드 N. 웹보기의 첫 발사에

  • 의 웹보기에 의해 영향을받는, 그것은 기본 로케일을 재설정합니다.
  • 전화를 돌리면 로켈이 올바르게 사용자 정의 로케일로 다시 설정됩니다.
  • 그런 다음 webview를 다시 시작하면 로켈이 올바르게 유지됩니다.

이 문제를 해결하려면 페이지를로드 한 후 선택한 언어로 다시 전환해야합니다.

언어를 전환 할 때 활동/단편 수명주기를 확인할 수도 있습니다.

출처 :

https://issuetracker.google.com/issues/37113860 https://gist.github.com/amake/0ac7724681ac1c178c6f95a5b09f03ce#new-locales-vs-old-locales-chinese Activity is blinking after locale change in Android 4.1+