티스토리 뷰
Android Webview로 하이브리드 앱 만들기
pilot376 2019. 6. 17. 13:32프로젝트 생성
- File > New > New Project 메뉴 클릭
- Empty Activety 선택
- Name, Package name 등 앱 정보를 입력 후 생성 완료
인터넷 권한 추가
- app > manifests > AndroidManidest.xml 파일 오픈
- <application></application> 코드 상단에 권한 코드 추가
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
Webview Layout 추가
- app > res > layout > activity_main.xml 파일 오픈
- Design -> Text 모드로 변경
- <android.support.constraint.ConstraintLayout></android.support.constraint.ConstraintLayout> 태그 내에 웹뷰 추가 (android:id="@+id/mainWebview" 값은 MainActivity.java 에서 사용할 ID값)
<WebView
android:id="@+id/mainWebview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
웹뷰 URL 호출 코드 추가
- app > java > my.package.name > MainActivity.java 파일 오픈
- 웹뷰 내 URL 호출 코드 추가 (클래스 임포트가 필요한 경우 Alt + Enter로 추가)
public class MainActivity extends AppCompatActivity {
private WebView webView;
private WebSettings webViewSetting;
private String webUrlLocal = "https://domain.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.mainWebview);
webViewSetting = webView.getSettings();
webViewSetting.setJavaScriptEnabled(true);
webViewSetting.setLoadWithOverviewMode(true);
webView.setWebViewClient(new WebViewClient(){});
webView.loadUrl(webUrlLocal);
}
}
Back 버튼 기능 추가
- app > java > my.package.name > MainActivity.java 파일 오픈
- onBackPressed 메서드 추가 (클래스 임포트가 필요한 경우 Alt + Enter로 추가)
@Override
public void onBackPressed() {
if (webView.getOriginalUrl().equalsIgnoreCase(URL)) {
super.onBackPressed();
}else if(webView.canGoBack()){
webView.goBack();
}else{
super.onBackPressed();
}
}
Native Header 제거
- app > res > values > styles.xml 파일 오픈
- <item name="windowNoTitle">true</item> 태그 추가
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
세로 모드 고정
- app > manifests > AndroidManidest.xml 파일 오픈
- <activity> 태그에 screenOrientation 어트리뷰트 추가
android:screenOrientation="portrait"
댓글
글 보관함
최근에 올라온 글
최근에 달린 댓글
TAG
- ubuntu
- JSON.stringify
- nginx
- 파이어폭스
- BASE64
- AWS
- JavaScript
- jekyll
- 앱링크
- html
- JSONPlaceholder
- 풋볼매니저 터치 2018
- 유닛테스트
- vue.js
- dev tools
- css
- Android
- 렌더링 이슈
- TDD
- javascipt
- chrome
- axios-mock-adapter
- Git
- Total
- Today
- Yesterday