2017-10-05 2 views
1

안녕하세요. 알림을 표시하는 방법을 알려주는 방법으로 푸시 알림을 구현하는 중입니다. 알림을 받고 있지만 메시지를 볼 수 없기 때문에 알림을 표시 할 수 있습니다. 이 경고로 표시되어 있지만 통지 할 수있는 하나 개의 도움으로와 안드로이드 또는 iOS에서 원하는 우리가해야 바로 매니페스트 파일 및 응용 프로그램 위임 파일에 플러터플러시 알림을 구현하는 방법

에서 이것에 대해 무엇을이

class PushMessagingExample extends StatefulWidget { 
@override 
_PushMessagingExampleState createState() => new _PushMessagingExampleState(); 
} 

class _PushMessagingExampleState extends State<PushMessagingExample> { 
String _homeScreenText = "Waiting for token..."; 
bool _topicButtonsDisabled = false; 

final FirebaseMessaging _firebaseMessaging = new FirebaseMessaging(); 
final TextEditingController _topicController = 
new TextEditingController(text: 'topic'); 

Future<Null> _showItemDialog(Map<String, dynamic> message) async { 
final Item item = _itemForMessage(message); 
showDialog<Null>(
    context: context, 
    child: new AlertDialog(
     content: new Text("Item ${message} has been updated"), 
     actions: <Widget>[ 
     new FlatButton(
      child: const Text('CLOSE'), 
      onPressed:() { 
       Navigator.pop(context, false); 
      }), 
     new FlatButton(
      child: const Text('SHOW'), 
      onPressed:() { 
       Navigator.pop(context, true); 
      }), 
     ], 
    )).then((bool shouldNavigate) { 
    if (shouldNavigate == true) { 
    _navigateToItemDetail(message); 
    } 
}); 
} 

Future<Null> _navigateToItemDetail(Map<String, dynamic> message) async  { 
final Item item = _itemForMessage(message); 
// Clear away dialogs 
Navigator.popUntil(context, (Route<dynamic> route) => route is PageRoute); 
if (!item.route.isCurrent) { 
    Navigator.push(context, item.route); 
} 
} 

    @override 
void initState() { 
    super.initState(); 
_firebaseMessaging.configure(
    onMessage: (Map<String, dynamic> message) { 
    print("onMessage: $message"); 
    print(message); 
    _showItemDialog(message); 
    }, 
    onLaunch: (Map<String, dynamic> message) { 
    print("onLaunch: $message"); 
    print(message); 
    _navigateToItemDetail(message); 
    }, 
    onResume: (Map<String, dynamic> message) { 
    print("onResume: $message"); 
    print(message); 
    _navigateToItemDetail(message); 
    }, 
); 
_firebaseMessaging.requestNotificationPermissions(
    const IosNotificationSettings(sound: true, badge: true, alert: true)); 
_firebaseMessaging.onIosSettingsRegistered 
    .listen((IosNotificationSettings settings) { 
    print("Settings registered: $settings"); 
}); 
_firebaseMessaging.getToken().then((String token) { 
    assert(token != null); 
    setState(() { 
    _homeScreenText = "Push Messaging token: $token"; 
    }); 
    print(_homeScreenText); 
}); 
} 

@override 
Widget build(BuildContext context) { 
return new Scaffold(


    body: new Material(
     child: new Column(
     children: <Widget>[ 
      new Center(
      child: new Text(_homeScreenText), 
     ), 

     ], 
    ), 
    )); 
    } 

    } 

답변

1
처럼 내 코드 조회

잠금 화면에 메시지를 넣으려면 "데이터"메시지 대신 "알림"메시지 유형을 보내야합니다. 실행중인 앱으로 전달됩니다. firebase 개발자 가이드에서 different types of Firebase messages에 대해 더 자세히 알 수 있습니다.

+0

잠금 화면에서 알림을 받고 있지만 화면이 활성 상태 일 때 다른 앱이 열렸을 때이 앱의 알림이 표시되어야합니다. –

관련 문제