웹뷰를 사용해서 웹페이지를 사용(Building web apps in WebView)
: 앱에서 웹페이지를 링크해서 사용하는것이라 생각하면 됨
- 와이파이 접속이 안된 상태에서는 데이터 사용 문제가 발생할 수 있음
# 웹뷰를 레이아웃에 추가함(Adding a WebView in the activity layout)
activity_main.xml
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
# 웹뷰를 onCreate에 추가(Adding a WebView in onCreate())
MainActivity.java
private WebView webView;
...
webView = (WebView)findViewById(R.id.webview);
webView.loadUrl(url);
# 인터넷 연결(Access to the Internet)
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myweb.myapp">
<!--인터넷 연결(Access to the Internet)-->
<uses-permission android:name="android.permission.INTERNET" />
...
</manifest>
# 웹뷰에서 자바스크립트 사용하기(Using JavaScript in WebView)
MainActivity.java
private WebView webView;
...
webView.getSettings().setJavaScriptEnabled(true);
or
private WebSettings webSettings;
...
webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
# 페이지 탐색 처리(Handling page navigation)
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
...
webView.setWebChromeClient(new WebChromeClient()); // For Chrome
webView.setWebViewClient(new MyWebViewClient());
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// Case 1
if ("www.myweb.com".equals(Uri.parse(url).getHost())) {
// This is my website, so do not override; let my WebView load the page
return false;
}
// Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
// Case 2
//view.loadUrl(url);
return true;
}
}
# 웹페이지 기록 탐색(Navigating web page history)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
출처>
안드로이드 개발자 사이트
https://developer.android.com/guide/webapps/webview
'Software > Android' 카테고리의 다른 글
[Android] 기초 - 리소스(res), 간단한 문자열 리소스를 만들고 만든 리소스에 접근하기 (0) | 2020.04.10 |
---|---|
[Android] 기초 - 화면 이동 (0) | 2020.04.07 |
[Android] 앱 네트워킹을 위한 HTTP 라이브러리 Volley 추가하기 (0) | 2020.03.29 |
[Android] 타이틀바 없애기 - 안드로이드 위쪽의 프로젝트 이름 지우기, styles.xml (0) | 2020.03.15 |
[Android] 리소스 폴더(/res)의 파일이름에 가능한 문자 (0) | 2019.04.06 |