이전 질문에도 썼다시피, 웹페이지를 웹뷰로 보여주는 형태의 앱을 제작하고 있습니다.
웹페이지 자체가 그냥 링크 링크 형식이라 별 어려움 없이, 웹뷰로 만들었는데
잘되던 것이 모바일 기기를 인식하는 부분의 소스를 수정했는지, 웹뷰를 모바일
기기로 인식 하지 못하더군요.
소스를 보지 못하는 관계로 어떻게 처리되는지는 모르겠습니다만.
대략 자바스크립트의 navigator.useragent 로 분류하는 것 같습니다.
웹뷰로 네이버나, 구글을 테스트 했을때는 자동으로 모바일 페이지로 들어가는것으로
봐서 웹페이지 소스에서 모바일 체크하는 부분에 조금 누락된것 같기도 한데
안드로이드 웹브라우저로는 잘 들어가지더군요.;;
그래서 웹뷰의 useragent 세팅하는 부분에서
webView.getSettings().setUserAgent(0);
webView.getSettings().setUserAgentString("android");
이렇게 세팅도 해보고 바꿔보기도 했는데 안되네요.
웹뷰를 안드로이드 웹브라우저로 인식하는 방법이 있는건지 궁금합니다.
url을 열 떄 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
이렇게 해봤는데도 되지는 않네요.
해결 방법이 없는지 궁금합니다.
ㅠㅠ.제가 글솜씨가 없나봅니다.논뚜렁님꼐서 반대로 이해하셨네요.
웹페이지 상에 분기되는 소스를 제가 볼수도 수정할 수도 없습니다.
그런 상태에서 안드로이드 웹브라우저는 제대로 열리고, 웹뷰상태에서는
모바일 기기가 아니라는 메시지를 받는 현상이라서
혹시 웹뷰도 userAgent 설정을 변경해서 안드로이드 웹브라우저라고
인식시킬수 있는지를 묻는 질문이었습니다.
물론 웹뷰에서는 JavaScriptEnabled(true); 로 설정해 주었구요..
아 제가 반대로 이해했군요.
어떤 상항인지 정확히 알수는 없지만 웹소스 수정이 불가능 하시다니...
제가 더 도와드리기가 힘들거 같네요..ㅠㅠ
모바일 기기 웹브라우저에서 해당 페이지를 띄운후의 페이지를 로딩 하시면 안되나요?
ww.naver.com을 로딩했을경우 모바일기기에서는 m.naver.com으로 리다이렉트 되니...
정확한 방법은 아니겠지만 이렇게 하면 해결되지 않을까 싶습니다.




웹페이지를 로딩 했을때 모바일 기기 마다 다른 페이지를 로드 해야하는데 그렇지 못한 문제에 대해서 말씀하시는 거라면
처음에 웹페이지 로딩 하는 index 페이지에서 환경에 따라 분기해줘야 합니다.
<script language="JavaScript">
var _ua = window.navigator.userAgent.toLowerCase();
var mobileB = {
model: _ua.match(/(sch-m490|sonyericssonx1i|ipod|iphone|ipad)/) ? _ua.match(/(sch-m490|sonyericssonx1i|ipod|iphone|ipad)/)[0] : "",
skt : /msie/.test( _ua ) && /nate/.test( _ua ),
lgt : /msie/.test( _ua ) && /([010|011|016|017|018|019]{3}\d{3,4}\d{4}$)/.test( _ua ),
opera : (/opera/.test( _ua ) && /(ppc|skt)/.test(_ua)) || /opera mobi/.test( _ua ),
ipod : /webkit/.test( _ua ) && /\(ipod/.test( _ua ) ,
iphone : /webkit/.test( _ua ) && /\(iphone/.test( _ua ),
lgtwv : /wv/.test( _ua ) && /lgtelecom/.test( _ua ),
android : /android/.test( _ua ),
ipad : /webkit/.test( _ua ) && /\(ipad/.test( _ua )
};
try {
if ( mobileB.model || mobileB.skt || mobileB.lgt||
mobileB.opera || mobileB.ipod || mobileB.iphone||mobileB.lgtwv|| mobileB.android || mobileB.ipad){
location.href = "이동할 URL";
}
} catch (e) {}
</script>
WebView에서는
webView.getSettings().setJavaScriptEnabled(true); // 자바스크립트 허용 옵션
을 추가해주셔야겠죠.