gpt4 book ai didi

firebase - 单击推送通知时如何在我的 flutter 应用程序中打开特定页面

转载 作者:IT王子 更新时间:2023-10-29 06:53:33 25 4
gpt4 key购买 nike

单击推送通知时如何在我的 Flutter 应用程序中打开特定页面。我创建了一个 php 脚本来推送 FCM 推送通知,但它只是打开应用程序首页.....我希望推送通知带有日期并在我的应用程序中打开日历页面并显示通知的详细信息。

<?php

if(isset($_GET['send_notification'])){
send_notification ();
}

function send_notification()
{
echo 'Hello';
define( 'API_ACCESS_KEY', 'Secret');
// $registrationIds = ;
#prep the bundle
$msg = array
(
'body' => 'App New Event Notification',
'title' => 'There is a new event added to the calendar',

);
$fields = array
(
'to' => $_REQUEST['token'],
'notification' => $msg
);


$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
#Send Reponse To FireBase Server
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
echo $result;
curl_close( $ch );
}
?>

最佳答案

在您的主页中,您可以处理 FCM 通知。

此外,检查 firebase文档。

首先,您需要格式化 JSON。这就是我所遵循的。

{  
"notification": {
"title": "Some title",
"body": "Some text",
},
"data": {
"title": "Some title",
"body": "Some text",
"click_action": "FLUTTER_NOTIFICATION_CLICK",
"sound": "default",
"status": "done",
"screen": "OPEN_PAGE1",
"extradata": "",
}
}

firebaseMessaging.configure(
onLaunch: (Map<String, dynamic> msg) {
print("Called onLaunch");
print(msg);
},
onResume: (Map<String, dynamic> msg) {
//(App in background)
// From Notification bar when user click notification we get this event.
// on this event navigate to a particular page.
print(msg);
// Assuming you will create classes to handle JSON data. :)
Notification ns =
Notification(title: msg['title'], body: msg['body']);

Data data = Data(
clickAction: msg['click_action'],
sound: msg['sound'],
status: msg['status'],
screen: msg['screen'],
extradata: msg['extradata'],
);
switch (data.screen) {
case "OPEN_PAGE1":
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Page1()
),
);
break;
default:
break;
},
onMessage: (Map<String, dynamic> msg) {
// (App in foreground)
// on this event add new message in notification collection and hightlight the count on bell icon.
// Add notificaion add in local storage and show in a list.
updataNotification(msg);
},
);

关于firebase - 单击推送通知时如何在我的 flutter 应用程序中打开特定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55447789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com