안드로이드 스튜디오 웹뷰(Web View)
- 프로그래밍/안드로이드
- 2020. 4. 17.
250x250
안드로이드 스튜디오 웹뷰
안녕하세요.
오늘은 웹페이지를 보여주는 안드로이드 앱을 만들어보겠습니다.
반응형 웹페이지와 간단한 웹뷰 코드만 있다면 간단하게 안드로이드 웹 앱을 만들 수 있습니다.
- 웹뷰(Web View)코드
- 실행결과.
웹뷰(Web View) 코드.
MainActivity.class
->loadurl부분에 원하는 링크를 넣어 사용.
package com.Troy.qrcode;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Build;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (WebView) findViewById(R.id.webView);
/* 웹 세팅 작업하기 */
WebSettings webSettings = web.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(false);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
webSettings.setSupportMultipleWindows(false);//true로 하면 라이브리 로그인 안됨.
webSettings.setUseWideViewPort(true); //html 컨텐츠가 웹뷰에 맞게 나타남
webSettings.setLoadWithOverviewMode(true);
webSettings.setSaveFormData(true);
web.setWebViewClient(new WebViewClient());
web.setWebChromeClient(new WebChromeClient());
if(Build.VERSION.SDK_INT >= 21) {
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
web.loadUrl("https://ykarr.github.io/web/QR.html");
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (web.canGoBack()) {
web.goBack();
return false;
}
}
return super.onKeyDown(keyCode, event);
}
}
res/layout/activity_main.xml
->webview표시를 위해 WebView를 추가.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
manifests/AndroidManifest.xml
->permission추가(권한)
->theme부분을 NoActionBar로 수정.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.Troy.qrcode">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/img"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity android:name="com.Troy.qrcode.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
실행 결과.
사용한 웹사이트(깃허브.)
https://ykarr.github.io/web/QR.html
웹뷰 어플 제작을 위해 만들어본 반응형 깃허브 사이트.
웹뷰 어플 실행 결과.