1. 콜백함수와 웹뷰 위젯
(콜백함수)
Callback 함수는 일정작업이 완료되면 실행되는 함수이다. 함수를 정의해두면, 바로 실행되지 않고, 특정 조건이 성립할 때 비로소 실행된다. 유저가 화면을 터치할 때, 웹뷰의 로딩이 완료되었을 때 등 실행된다.
(웹뷰 위젯)
웹뷰는 프레임워크에 내장된 브라우저를 앱의 네이티브 컴포넌트(component)에 임베딩(embedding)하는 기능이다. 즉 앱에서 웹브라우저 기능을 구현해주는 기술이다. 웹뷰는 네이티브 컴포넌트에 비해 속도가 느리고 애니메이션이 부자연스럽다는 단점이 있다. 그럼에도 웹뷰를 사용하는 이유는 웹사이트를 쉽게 활용할 수 있기 때문이다. 플러터에서도 웹뷰 위젯을 제공하며, 이 위젯을 사용하여 앱에서 브라우저를 실행할 수 있다.
웹뷰 위젯의 속성 | |
속 성 | 세부내용 (기능) |
initialUrl | 웹뷰에서 처음 실행할 웹사이트를 String 값으로 제공한다. |
javascriptMode | 웹뷰에서 자바스크립트 실행을 허용할 지 여부를 결정한다. javascriptMode.unrestricted : 제한없이 실행 javascriptMode.disabled : 자바스크립트 실행불가 |
onWebViewCreated | 웹뷰 위젯이 실행되면 실행할 콜백함수이다. 매개변수로 WebViewController가 주어져 '뒤로가기, 앞으로가기, 새로운 URL 실행하기' 등 기능을 제어할 수 있음 |
onPageStarted | 웹뷰가 처음 생성되거나, 페이지를 이동했을 때, 웹페이지가 로딩되기 시작하면서 실행할 콜백함수를 정의할 수 있다. 함수에는 매개변수로 로딩이 시작된 페이지의 URL이 String형으로 제공된다. |
onPageFinished | 웹페이지 로딩이 끝나면 실행된다. 로딩이 완료된 페이지의 URL이 String형으로 제공된다. |
onProgress | 웹페이지가 로딩 중일 때 지속적으로 실행되며 페이지의 로딩이 끝날 대까지 실행된다. 매개변수에 int 값으로 페이지 로딩 상태를 0부터 100 사이의 숫자로 제공해 준다. |
2. pubspec.yaml 설정
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
webview_flutter: 4.2.4 (추가)
3. android\app\src\main\AndroidManifest 설정
웹뷰를 실행할 때 인터넷을 사용해야 하니 인터넷 권한을 추가한다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" /> (추가)
<application..
</application>
</manifest>
참고로, 플러터 안드로이드에서 자주 사용하는 권한은 다음과 같다.
자주 사용하는 안드로이드 권한 | |
코드 | 세부내용 (기능) |
INTERNET | 인터넷 사용 권한 |
CAMERA | 카메라 사용 권한 |
WRITE_EXTERNAL_STORAGE | 앱 외부에 파일을 저장할 수 있는 권한 |
READ_EXTERNAL_STORAGE | 앱 외부의 파일을 읽을 수 있는 권한 |
VIBRATE | 진동을 일으킬 수 있는 권한 |
ACESS_FINE_LOCATION | GPS와 네트워크를 사용하여 정확한 위치정보를 가져올 수 있는 권한 |
ACESS_COARSE_LOCATION | 네트워크만 사용하여 대략의 위치정보를 가져올 수 있는 권한 |
ACESS_BACKGROUND_LOCATION | 앱이 배경이 있을 때 위치정보를 가져올 수 있는 권한 |
BILLING | 인앱 결제를 할 수 있는 권한 |
CALL_PHONE | 전화기를 사용하지 않고 전화를 할 수 있는 권한 |
NETWORK_STATE | 네트워크 상태를 가져올 수 있는 권한 |
RECORD_AUDIO | 음성을 녹음할 수 있는 권한 |
4. android\app\build.gradle 설정
compileSdkVersion은 앱을 빌드할 때 사용할 SDK버전이다 (이하 버전의 기능은 모두 지원).
minSdkVersion은 안드로이드 운영체제의 최소 SDK 버전을 설정할 수 있는 위치이다
변경
compileSdkVersion flutter.compileSdkVersion 을 => compileSdkVersion 32 으로
minSdkVersion flutter.minSdkVersion 을 => minSdkVersion 20 으로 변경
이런 설정 관련 정보는 https://pub.dev/packages/webview_flutter 에서 찾을 수 있다
4. main 코드 완성
5. HomeScreen 코드 완성
5. 최종 결과
'생활코딩' 카테고리의 다른 글
[Flutter] Android SDK "Android API 29 Platform" 에러 해결 (0) | 2023.09.17 |
---|---|
[Flutter/Dart] 주석 표기법(Commenting Code) (0) | 2023.09.03 |