안드로이드 개발 질문/답변
(글 수 45,052)
Webview 를 이용하여 웹페이지를 불러와 로딩하는 작업을 하고 있는 중입니다.
그런데 모토로이에 내장된 웹브라우저에서 링크를 클릭할 경우
<a href="tel:112">112</a> 는 바로 전화걸기로 이동이 되는데요.
Webview 로 하여 불러왔을 경우 웹 페이지를 찾을 수 없다는 오류 페이지가 뜨네요.
Manifest.xml 를 다음과 같이 했습니다.
<activity android:name=".webviewDemo"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
그리고 java 파일을 다음과 같이 했습니다.
mWebView2 = (WebView)findViewById(R.id.webview2);
mWebView2.setWebViewClient(new AppWebViewClient());
mWebView2.getSettings().setJavaScriptEnabled(true);
mWebView2.loadUrl(http://xxx.asp);
private class AppWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
무엇이 문제일까요..
제가 뭐 빼먹은 것이 있나요? 외국사이트도 뒤져 봤는데 답답하네요.
그런데 모토로이에 내장된 웹브라우저에서 링크를 클릭할 경우
<a href="tel:112">112</a> 는 바로 전화걸기로 이동이 되는데요.
Webview 로 하여 불러왔을 경우 웹 페이지를 찾을 수 없다는 오류 페이지가 뜨네요.
Manifest.xml 를 다음과 같이 했습니다.
<activity android:name=".webviewDemo"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
그리고 java 파일을 다음과 같이 했습니다.
mWebView2 = (WebView)findViewById(R.id.webview2);
mWebView2.setWebViewClient(new AppWebViewClient());
mWebView2.getSettings().setJavaScriptEnabled(true);
mWebView2.loadUrl(http://xxx.asp);
private class AppWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
무엇이 문제일까요..
제가 뭐 빼먹은 것이 있나요? 외국사이트도 뒤져 봤는데 답답하네요.
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startswith("tel:")) {
Intent call_phone = new Intent(Intent.ACTION_VIEW , Uri.parse(url)) ;
// 현재의 activity 에 대해 startActivity 호출
activityObj.startActivity(call_phone) ;
return true ;
}
view.loadUrl(url);
return true;
}
핵심은 ACTION_VIEW 액션으로 전화거는 액티비티를 띄운다는 것입니다.
http://developer.android.com/reference/android/content/Intent.html 를 참고하세요.