[개발] 안드로이드 webview 기본 소스
이 포스팅은 자주쓰는 안드로이드 소스를 개인적으로 정리하는 것입니다.
안드로이드 webview 기본 소스. Activity를 이용한 소스이며 fragment를 이용하는 경우는 소스가 약간다르다.
MainActivity.java
public class MainActivity extends Activity {
private WebView webView;
private ProgressBar mPBar;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
mPBar = (ProgressBar) findViewById(R.id.progress01);
WebSettings set = webView.getSettings();
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://newhouse.tistory.com/"); // 보여주고자 하는 주소
set.setCacheMode(WebSettings.LOAD_NO_CACHE);
set.setSupportZoom(false);
webView.setWebViewClient(new WebClient());
webView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress) {
if (progress<100)
{
mPBar.setVisibility(ProgressBar.VISIBLE);
}
else if (progress==100)
{
mPBar.setVisibility(ProgressBar.GONE);
}
mPBar.setProgress(progress);
}
});}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
if(webView.canGoBack()){
webView.goBack();
}else{
webView.clearCache(false);
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
private class WebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("sms:")) {
Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(url));
startActivity(i);
return true;
}
if (url.startsWith("kakaolink:")) {
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(i);
return true;
}
if(url.startsWith("tel")){
Intent i = new Intent(Intent.ACTION_DIAL);
i.setData(android.net.Uri.parse(url));
startActivity(i);
} else {
view.loadUrl(url);
}
return true;
}}
}
webview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<ProgressBar
android:id="@+id/progress01"
android:layout_width="fill_parent"
android:layout_height="10dp"
style="?android:attr/progressBarStyleHorizontal"
/>
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
간단히 copy해서 이클립스에서 돌리면 간단한 웹뷰로 구성된 어플를 만들 수 있다.