기본 모바일 웹 페이지만 띄우는 작업이면 상관이없는데
이 모바일 페이지에서 전화를 건다거나 동영상을 재생한다면 안드로이드는 동작을 안하게되죠
지금 떠있는 것은 웹뷰이고 웹뷰는 동영상이나 전화거는 뷰가 아니기때문입니다.
그래서 url을 가지고 동영상, 전화, 메일등을 가려내 해당 뷰로 넘겨주어
굳이 모바일 웹쪽을 수정하지않아도 앱단에서 해결 할 수 있는 방법입니다.
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String origin_url = url;
String temp_url = origin_url.substring(origin_url.length() - 3,
origin_url.length());
if (temp_url.equals("mp4")) {
// 동영상 플레이어로 재생하기
Intent i = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse(url);
i.setDataAndType(uri, "video/mp4");
startActivity(i);
} else if (origin_url.startsWith("tel:")) {
// 전화 걸기
Intent call_phone = new Intent(Intent.ACTION_VIEW,
Uri.parse(origin_url));
// 현재의 activity 에 대해 startActivity 호출
startActivity(call_phone);
return true;
} else if (origin_url.startsWith("mailto:")) {
// 이메일 보내기
String email = origin_url.replace("mailto:", "");
final Intent intent = new Intent(
android.content.Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(android.content.Intent.EXTRA_EMAIL,
new String[] { email });
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "제목");
intent.putExtra(android.content.Intent.EXTRA_TEXT, "내용");
startActivity(Intent.createChooser(intent, "이메일 전송"));
} else {
// 기본 웹 페이지 넘어가기
view.loadUrl(url);
}
return true;
}
}
(2012 10 14 에 내용 추가 )
http://가 아닌 rtsp://로 시작하는 mp4 영상파일은 위 방법으로 재생이 되지않습니다.
if (temp_url.endsWith("mp4")) {
// 동영상 플레이어로 재생하기
try {
Intent i = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
startActivity(i);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
이런 식으로 타입지정하는 i.setDataAndType(uri, "video/mp4"); 이부분을 빼주셔야 재생이 됩니다.
로
mWebView = (WebView) findViewById(R.id.MainWebview);
mWebView.getSettings().setJavaScriptEnabled(true);
// 웹뷰에 줌 달기
mWebView.getSettings().setBuiltInZoomControls(true);
// 웹뷰에 딱맞게 페이지 크기조절
final WebSettings webSetting = mWebView.getSettings();
webSetting.setLoadWithOverviewMode(true);
webSetting.setUseWideViewPort(true);
mWebView.loadUrl("http://www.naver.com");
mWebView.setWebViewClient(new HelloWebViewClient());
댓글 없음:
댓글 쓰기