헉....충격이다...
앞으로 HTML5가 대세가 될것을 보면서 번거로운 안드로이드 어플 개발에 대한 흥미가 떨어졌었다.
그랬더니 기본적인 것도 다~ 잊어버렸네...ㅋㅋ
웹브라우저 VS 웹뷰
안드로이드에서 웹 페이지를 보여주는 방법은 2가지이다.
- 웹브라우저
- 웹뷰(WebView)
간단히 웹 브라우저는 간단히 URL만 사용해서 엡 페이지를 보여줄 때 사용하고,
웹뷰는 하이브리드 방식으로 내부동작에는 안드로이드 내장 컴포넌트를 사용할 때 이용된다.
Webview 사용하기
- AndroidManifest.xml 에 인터넷 사용 설정하기
- 레이아웃 XML에 WebView 선언하기
- HTML 작성 및 저장
- Activity에서 mWebView 사용하기
1. AndroidManifest.xml 에 인터넷 사용 설정하기
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="moblie.dart"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="HomeActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="6" />
</manifest>
2. 레이아웃 XML에 WebView 선언하기
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
3. HTML 작성 및 저장
HTML 작성시 저장 위치를 알아야 한다. 바로 여기 {MyProject}/assets/ 안에 html 폴더를 만들고 저장한다. 호출할 때는 "file:///android_asset/html/test.html"라고 적는다.
4. Activity에서 WebView 사용하기
public class HomeActivity extends Activity { /** Called when the activity is first created. */ final static String TAG = "HomeActivity" ; final Activity activity = this; HomeActivity home ; WebView mWebView ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); if(mWebView != null){ mWebView.getSettings().setJavaScriptEnabled(true); // 웹뷰에서 자바스크립트실행가능 // mWebView.loadUrl("http://www.google.com"); // 구글홈페이지 지정 mWebView.loadUrl("file:///android_asset/html/home.html"); mWebView.setWebViewClient(new MyWebClient()); // WebViewClient 지정 } } private class MyWebClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view , String url){ view.loadUrl(url); return true; } public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); } } }