반응형
참고 : 안드로이드 developers
https://developer.android.com/guide/webapps?hl=ko
◇ 웹 컨텐츠
웹뷰 : UI를 더 세부적으로 제어할 수 있다.
웹페이지를 Layout에 표시할 수 있도록 해준다.
public class WebView
extends AbsoluteLayout implements ViewTreeObserver.OnGlobalFocusChangeListener,
ViewGroup.OnHierarchyChangeListener
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.widget.AbsoluteLayout
↳ android.webkit.WebView
웹 페이지를 보여주는 View
안드로이드와 상호작용이 가능하다.
WebVeiw의 대안
1. 사용자를 모바일 사이트로 보내려면 PWA(Progressive Web App)를 빌드한다.
2. 타사 웹 컨텐츠 표시하려면 설치된 웹브라우저(브라우저 어플)에 인텐트를 보낸다.
3. 앱에서 브라우저를 열지 않도록 방지하거나 브라우저의 UI를 맞춤 설정하려면 Chrome 맞춤 탭을 사용한다.
WebView 사용 방법
0. manifest파일에 Internet 권한 요청(인터넷 권한이 필요하다)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET" />
....
</manifest>
1. Activity Layout에 WebView를 추가합니다.
<WebView
android:id="@+id/webview"
android:layout_width="410dp"
android:layout_height="550dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
2. 웹 페이지 로드 : loadUrl()
Activity 내의 onCreate에서 활용했다.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// inflate : xml의 뷰를 객체화 해준다.
val binding=ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val myWebView= binding.webview
myWebView.loadUrl("https://www.naver.com")
binding.btnChrome.setOnClickListener {
println("chrome")
myWebView.loadUrl("https://www.google.com")
}
binding.btnYoutube.setOnClickListener {
println("youtube")
myWebView.loadUrl("https://www.youtube.com")
}
}
1차 결과물. chrome을 선택하면 아래와 같이 보일 것이다.
하지만, naver나 youtube의 경우 어플로 자동으로 넘어가는 것을 볼 수 있다.
WebView 맞춤설정
- WebViewClient
- WebSettings
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드] 2-2. WebView 웹뷰 - Javascript Interface(Kotlin) (0) | 2023.03.11 |
---|---|
[안드로이드] 2-1. WebView 웹뷰 - 로컬 HTML불러오기 (Kotlin) (0) | 2023.03.11 |
[안드로이드] Permission - 권한 허용 요청(requestPermissions)(feat. Kotlin) (0) | 2023.01.27 |
[안드로이드] Permission - 권한 확인하기(checkSelfPermission)(feat. Kotlin) (0) | 2023.01.27 |
[Kotlin] CSV 파일 읽고 쓰기 (0) | 2023.01.15 |
댓글