• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Flutter 게시판 Local notification 알림 주는 법 버그관련 질문 입니다.

Local notification 알림 주는 법 버그관련 질문 입니다.

  • 이 주제에는 11개 답변, 7명 참여가 있으며 진성식2 월 전에 전에 마지막으로 업데이트했습니다.
10 글 보임 - 1 에서 10 까지 (총 12 중에서)
  • 글쓴이
  • #61217

    오명석
    참가자
    
    강사님이 만들어 놓으신 showNotification( ) 를 사용하면 위와같이 " ios : iosDetails "  에서 애러가 나는데,
    도저히 원인을 모르겠어서 질문 올립니다. 
    제가 바꾼것은 IOSNotificationDetails( ) -->  DarwinInitializationSettings( ) 변경되었다하여(구글링에서) 바꾼것 밖에 없습니다. 
    그리고, 
    작년에 강의를 구입하여 공부하다 일 때문에 한참을 못보다 다시 들어와서 공부중인데, 남은 강의일수가 7일 밖에 안됩니다.
    이제 좀 집중해서 공부할 여건이 되었는데, 강의수강일수 좀 연장이 가능한지 질문드립니다.
    
    수고하세요~ 
    
    
     
    #61239

    codingapple
    키 마스터
    어떤에러입니까
    #61325

    오명석
    참가자
    위에 업로드한 스샷을 보시면 ,
    NotificationDetails( android: androidDetails, ios: iosDetails )  에서  iosDetails 가 에러가 납니다. 
    오류메시지 --> The argument type 'DarwinInitializationSettings' can't be assigned to the parameter type 'DarwinNotificationDetails?'.
    
    #61344

    codingapple
    키 마스터
    https://github.com/MaikuB/flutter_local_notifications/blob/master/flutter_local_notifications/example/lib/main.dart 
    신버전 예시 보니까 
    
    const DarwinNotificationDetails darwinNotificationDetails =
    DarwinNotificationDetails(
    categoryIdentifier: darwinNotificationCategoryText,
    );
      
    const NotificationDetails notificationDetails = NotificationDetails(
    android: androidNotificationDetails,
    iOS: darwinNotificationDetails,
    macOS: darwinNotificationDetails,
    );
    이러면 된다는군요
    #71654

    박상용
    참가자
    샘 댓글이 전혀 도움이 안되고 있습니다. 위 문장을 어디에 붙여넣으라는 겁니까?  깃허브에 링크들어가도 장문의 코드만 보이는데;; 답을 알려주십시오!!!
    #71724

    codingapple
    키 마스터
    showNotification 함수안에 비슷한 변수나 함수명자리에 붙여넣읍시다
    #71805

    박상용
    참가자
    flutter_local_notifications: ^9.4.0
    
    
    import 'dart:ui';
    import 'package:provider/provider.dart';
    import 'package:flutter_local_notifications/flutter_local_notifications.dart';
    final notifications = FlutterLocalNotificationsPlugin();
    //1. 앱로드시 실행할 기본설정
    initNotification() async {
      //안드로이드용 아이콘파일 이름
      var androidSetting = AndroidInitializationSettings('app_icon');
      //ios에서 앱 로드시 유저에게 권한요청하려면
      var iosSetting = IOSInitializationSettings(
        requestAlertPermission: true,
        requestBadgePermission: true,
        requestSoundPermission: true,
      );
      var initializationSettings = InitializationSettings(
          android: androidSetting,
          iOS: iosSetting
      );
      await notifications.initialize(
        initializationSettings,
        //알림 누를때 함수실행하고 싶으면
        //onSelectNotification: 함수명추가
      );
    }
    //2. 이 함수 원하는 곳에서 실행하면 알림 뜸
    showNotification() async {
      var androidDetails = AndroidNotificationDetails(
        '유니크한 알림 채널 ID',
        '알림종류 설명',
        priority: Priority.high,
        importance: Importance.max,
        color: Color.fromARGB(255, 255, 0, 0),
      );
      var iosDetails = IOSNotificationDetails();
      // 알림 id, 제목, 내용 맘대로 채우기
      notifications.show(
          1,
          '제목1',
          '내용1',
          NotificationDetails(android: androidDetails, iOS: iosDetails)
      );
    }
    
    이렇게 하니깐 잘 작동하네요. 감사합니다.
    #87758

    임정환
    참가자
    혹시라도 저처럼.. 고민하셨던 분들 도움되시길 바랍니다. 
    
    var iosSetting = IOSInitializationSettings(.....이건 아래와 같이
    var iosSetting = DarwinInitializationSettings(
    
    var iosDetails = IOSNotificationDetails(..... 이건 아래와 같이ㅏ
    var iosDetails = DarwinNotificationDetails
    
    chat gpt 랑도 상의해봐도 최신버젼깔라하고 ㅜㅜ 
     별거 다 해보다 검색만.. 수십..개.. 그중 하나 나오네요
    
    https://stackoverflow.com/questions/73823706/the-method-iosinitializationsettings-isnt-defined-using-local-notification-pl
    
    #105668

    박도영
    참가자
    파베 연동하고 임정환님 뽕받아서 저도 대댓글 풀소스 남깁니다
    
    // 이건 해당 버전 
    flutter_local_notifications: ^11.0.0
    
    // notification.dart
    import 'package:flutter/material.dart';
    import 'package:flutter_local_notifications/flutter_local_notifications.dart';
    import 'package:timezone/data/latest_all.dart' as tz;
    import 'package:timezone/timezone.dart' as tz;
    // 해당 유저 알림 시간 정하기
    final notifications = FlutterLocalNotificationsPlugin();
    //1. 앱로드시 실행할 기본설정
    initNotification() async {
      //안드로이드용 아이콘파일 이름
      var androidSetting = AndroidInitializationSettings('app_icon');
      //ios에서 앱 로드시 유저에게 권한요청하려면
      var iosSetting = DarwinInitializationSettings(
        requestAlertPermission: true,
        requestBadgePermission: true,
        requestSoundPermission: true,
      );
      var initializationSettings =
          InitializationSettings(android: androidSetting, iOS: iosSetting);
      await notifications.initialize(
        initializationSettings,
        //알림 누를때 함수실행하고 싶으면
        //onSelectNotification: 함수명추가
        //   onSelectNotification: (payload) {
        // Navigator.push(
        //   context,
        //   MaterialPageRoute(
        //     builder: () => Text('새로운 페이지'),
        //   ),
        // );
      );
    }
    //2. 이 함수 원하는 곳에서 실행하면 알림 뜸
    showNotification() async {
      var androidDetails = AndroidNotificationDetails(
        '유니크한 알림 채널 ID',
        '알림종류 설명',
        priority: Priority.high,
        importance: Importance.max,
        color: Color.fromARGB(255, 255, 0, 0),
      );
      // presentAlert: true,
      // presentBadge: true,
      // presentSound: true,
      var iosDetails = const DarwinNotificationDetails (
      presentAlert: true,
      presentBadge: true,
      presentSound: true,
      );
      // 알림 id, 제목, 내용 맘대로 채우기
      notifications.show(
          1, // 개별 알림의 ID 숫자
          '안녕하세요 제목이에요',
          '알림띄우기 성공~!',
          NotificationDetails(android: androidDetails, iOS: iosDetails));
      // payload: '부가정보';
    }
    // 특정 시간에 알림 띄우기 
    showNotification2() async {
      tz.initializeTimeZones();
      var androidDetails = const AndroidNotificationDetails(
        '유니크한 알림 ID',
        '알림종류 설명',
        priority: Priority.high,
        importance: Importance.max,
        color: Color.fromARGB(255, 255, 0, 0),
      );
      var iosDetails =  DarwinNotificationDetails(
        presentAlert: true,
        presentBadge: true,
        presentSound: true,
      );
      notifications.zonedSchedule(  // 알림을 원하는 시간에 띄워줌 
          2,
          '제목2',
          '내용2',
          // RepeatInterval.daily 해당 메일 알림
          tz.TZDateTime.now(tz.local).add(Duration(seconds: 3)), // 폰의 현재시간 + 3초
          // tz.TZDateTime.now(tz.local).add(Duration(seconds: 5)),
          // 시간 입력하면 이 시간에 알림 뜸
          NotificationDetails(android: androidDetails, iOS: iosDetails),
          androidAllowWhileIdle: true,
          uiLocalNotificationDateInterpretation:
          UILocalNotificationDateInterpretation.absoluteTime,
          matchDateTimeComponents: DateTimeComponents.dayOfMonthAndTime
          // 매일 같은 시간에 알림 띄워 줌 time
          // dayOfMonthAndTime 월요일마다!
      );
    }
    // makeDate(8,30,0) // 오늘 8시 30분..
    // 매일 7 시 알림
    makeDate(hour, min, sec){
      var now = tz.TZDateTime.now(tz.local);
      var when = tz.TZDateTime(tz.local, now.year, now.month, now.day, hour, min, sec);
      if (when.isBefore(now)) {
        return when.add(Duration(days: 1));
      } else {
        return when;
      }
    }
    
    
    #131517

    박지원
    참가자
    24년 10월 안됩니다..ㅠㅠ
10 글 보임 - 1 에서 10 까지 (총 12 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠