본문 바로가기
프로그래밍

[안드로이드] onShowCustomView 가 호출되지 않는 경우

by hansoo.labs 한수댁 2015. 11. 26.
Vimeo를 이용한 웹앱을 손보고 있었는데요. 이게 브라우저 앱에서는 풀스크린 재생이 잘 되는데, 웹앱으로 감쏴놓으면 잘 안되는 겁니다. ㅠ 검색했더니 저랑 비슷한 문제를 겪는 분들이 많더라구요. 유투브는 잘 되는데 비메오만 잘 안되니 답답했습니다. 그러다 잔재주 하나로 해결했습니다.

2개의 폰을 가지고 테스트 했는데, 하나는 되고, 다른 하나는 안 되더라구요. 둘다 삼성폰인데.. 그러다 공식문서 Migrating to WebView in Android 4.4를 보고 혹시 크롬버전 때문인가 해서 UserAgent를 살펴보니 2개 폰이 조금 다르더라구요.

풀스크린이 잘 되는 폰

Mozilla/5.0 (Linux; Android 4.4.2; SHV-E300L Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36

풀스크린이 안 되는 폰

Mozilla/5.0 (Linux; Android 4.4.4; SHV-E370K Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36

크롬 버전을 낮췄더니.. 잘 되덥니다.
    WebSettings s = mWebView.getSettings();
    //Change UserAgent to play fullscreen vimeo's videos.
    String agent = s.getUserAgentString();
    String p = "(Chrome/[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)";
    Pattern pattern = Pattern.compile(p);
    Matcher matcher = pattern.matcher(agent);
    if(matcher.find()) {
        agent = matcher.replaceFirst("Chrome/30.0.0.0");
    }
    s.setUserAgentString(agent);

온전한 해결책은 아닐테지만, 당분간은 맘편히 잘 수 있겠습니다.
stackoverflow 에 답변도 달고. ^ㅠ^

댓글0