플러터 9

[flutter] Flutter에서 홈 화면 앱 위젯 웹뷰 메뉴 바로가기 방법 (안드로이드)

목적 : 홈 화면의 위젯에서 바로가기 메뉴 클릭시 웹뷰의 메뉴 이동 개념도 홈화면 위젯에서 버튼 클릭시 아래와 같은 순서로 실행됩니다. 홈화면 위젯에서 버튼 클릭 -> WidgetProvider -> flutter(main.dart) WidgetProvider 에서는 홈위젯의 어떤 메뉴가 클릭되었는지 확인합니다. 해결되지 않았던부분이 menu1 클릭시 앱이 화면에 보여줘야 되는데 안보이고 내부 데이터만 보여진 부분입니다. 이때의 코드는 아래와 같습니다. 수정전 val backgroundIntentMenu1 = HomeWidgetBackgroundIntent.getBroadcast(context, Uri.parse("myAppWidget://updatecountermenu1")) setOnClickPend..

[flutter] Flutter에서 홈 화면 앱 위젯 2개 만드는 방법 (안드로이드)

flutter 에서 홈 화면 앱 위젯 2개 만드는 방법을 소개합니다. 순서는 아래와 같이 추가해주면 됩니다. AndroidManifest.xml 2번째 위젯 추가 res/xml/widget_info_large.xml 추가 res/layout/widget_layout_large.xml 추가 WidgetProviderLarge.kt 추가 안드로이드 위젯 전체 흐름도 프로젝트 구조 .AndroidManifest.xml 2번째 위젯 추가 Android 홈 화면 위젯 (home widget)을 정의하는 데 사용되는 AndroidManifest.xml 파일의 일부입니다. 위 코드는 두 개의 위젯 (1번 위젯 및 2번 위젯)을 정의하고 각 위젯의 설정 및 동작을 정의합니다. 중요하게 봐야할 코드는 val views ..

[flutter] 인터넷에서 데이터 가져오기 GET/POST (fetch)

목적 : flutter 를 이용하여 인터넷에서 웹페이지 가져오는 방법 1. pubspec.yaml http 모듈 추가 dependencies: http: ^0.13.6 http 패키지를 가져옵니다. import 'package:http/http.dart' as http; 또한 AndroidManifest.xml 파일에 인터넷 권한을 추가하세요. 2. 네트워크 요청하기 Future fetchPrdCd() async { final response = await http.get(Uri.parse('http://abcd.com/quics')); if(response.statusCode == 200) { print('>>>환율위젯받아옴'+response.body); } else { throw Exception("..

[flutter] 화면 방향을 세로/가로 고정 방법

// 화면 방향을 세로모드로 고정합니다. void setOrientationVertical(BuildContext context) { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); } // 화면 방향을 가로모드로 고정합니다. void setOrientationHorizontal(BuildContext context) { SystemChrome.setPreferredOrientations([ DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight, ]); } 위의 코드는 Flutter 앱에서 화면 방향을 제어하기 위해 사용되는 함수들을 정의하고 있습니다. 이러한 함..

[flutter] 화면의 가로 및 세로 크기를 가져오기(휴대폰/패드 등)

휴대폰인지 패드인지 확인하기 위한 작업이 필요하다. 다음 코드를 봅시다. _screenSize() { MediaQueryData mediaQueryData = MediaQuery.of(context); // 화면의 가로 및 세로 크기를 가져옵니다. double screenWidth = mediaQueryData.size.width; double screenHeight = mediaQueryData.size.height; if(screenWidth > 600) { print('pad 에서 접속했습니다. 가로모드만 적용'); } else { print('phone 에서 접속했습니다. 세로모드만 적용'); } } 해설 MediaQueryData를 사용하여 현재 디바이스의 화면 크기 정보를 가져옵니다. scre..

[flutter] 앱 아이콘 변경

Icon 만들기 appicon.co 해당 사이트에서 앱 아이콘으로 사용할 이미지를 등록후 다운받도록 하자. 1. 안드로이드 플러터 앱 root 디렉토리에서 android/app/src/main/res 폴더를 확인해보면 아래와 같은 구조를 볼수있다. 위에서 받은 파일을 압축풀면 icon 파일중 android 파일을 열어보면 아래와 같은 폴더들이 있다. res 폴더안에 같은 이름의 폴더들이 존재하는걸 확인 할 수 있다. 해당경로의 파일들을 ic_launcher2.png 로 복사한다. android/app/src/main/AndroidManifest.xml 내용중 andrid:icon 항목을 ic_launcher2 로 변경해준다. android:icon="@mipmap/ic_launcher2" AndroidM..

[flutter] 스플래쉬(splash) 화면 추가

스플래시 화면에 보여줄 이미지를 준비합니다. 스플래시 화면은 일반적으로 앱 로고 또는 홍보 이미지를 사용합니다. main.dart 파일에서 스플래시 화면을 표시할 위젯을 생성합니다. 보통 MaterialApp 위젯을 감싸는 형태로 스플래시 화면을 만듭니다. 스플래시 화면 위젯 내부에서 Future.delayed 함수를 사용하여 지정된 시간 동안 스플래시 화면을 보여준 후에 다음 화면으로 이동하도록 처리합니다. 다음 화면으로 이동하기 위해서는 Navigator 클래스의 pushReplacement 메서드를 사용하면 됩니다. 아래는 간단한 예제 코드입니다: import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class ..

[flutter] native(앱) 의 웹뷰(vue3) 양방향 통신 방법 InAppWebView 사용

pubspec.yaml dev_dependencies: flutter_test: sdk: flutter # The "flutter_lints" package below contains a set of recommended lints to # encourage good coding practices. The lint set provided by the package is # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. ..