 |
|
|  |
| android webview url 가로채기 - 네이티브에서 작업 | android |
|
|
 |
10년 전 |
shouldOverrideUrlLoading 사용 예제이다.
tel:, sms: 등은 모바일브라우저에서 정상작동한다.
하지만 webview에서는 작동하지 않는다
그렇게 때문에 페이지전환 전에 url을 가로채서 전화, 문자, 파일다운로드 구현하였다.
웹에서 a태그에 tel:, sms: 또는 ~.hwp 등으로 끝나는 url 캐치해서 네이티브에서 실행
ex)
<a href="tel:15441544">전화상담</a>
<a href="sms:#11109090">문자상담</a>
<a href="/download/pdf/test.pdf" target="_blank">PDF 다운로드</a>
webview가 있는 onCreate 내부에 작성
private WebView _webview;
_webview = (WebView)findViewById(R.id.webview);
_webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
String ext = url.substring(url.lastIndexOf(".")+1);
if(ext.equals("pdf") || ext.equals("doc") || ext.equals("xls") || ext.equals("hwp")){
Uri uri = Uri.parse(url);
startActivity(new Intent(Intent.ACTION_VIEW, uri));
}else if (url.startsWith("tel:")) {
Intent i = new Intent(Intent.ACTION_CALL, Uri.parse(url));
startActivity(i);
return true;
} else if (url.startsWith("sms:")) {
url = url.replace("sms:", "");
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("address", url);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
return true;
}
return true;
}
@Override
public void onPageFinished(WebView view, String url){
}
}); |
|
추천 : 588 |
추천
목록
|
|
|  |
|