flutter - 如何构造 FCM 推送通知以在 Flutter(Android 和 iOS)的默认系统 Web 浏览器应用程序中打开指定的 URL
问题描述
我有一个 Flutter 应用程序(Android 和 iOS),它可以处理 Android Deep Links & App Links,以及 iOS Custom URL Schemes & Universal Links。
所以网址...
company://service/items/{item-id}
https://service.company.com/items/{item-id}
{item-id}
...都按预期和期望打开“项目详细信息”页面。
此应用程序的后端服务器发送 FCM 推送通知,当{item-id}
.
现在,单击推送通知只会启动应用程序的主页。
我想知道是否有可能以这样的方式构建 FCM 消息......它告诉设备在默认系统 Web 浏览器中打开 URL,这会触发我现有的深度链接功能?
我认为这很可能是可能的,因为我猜这将是营销材料的有用用例,或者需要在网站上而不是在应用程序内完成的操作?
但同时,我可以想象,除了 FCM 消息接收器之外,可能无法触发来自另一个应用程序的推送通知的处理?
我试图在服务器/FCM 广播阶段处理这个问题的理由是,如果可能的话,我想重用现有的功能性深度链接功能,在通用颤振层中尽可能少地更改,并尽可能避免使用本机代码可能的。
我正在为 Android 尝试什么:
{
"notification": {
"title": "Stackoverflow title",
"body": "Click on it to see what happens!",
"click_action": "android.intent.action.VIEW",
"data": "https://service.company.com/items/{item-id}"
},
"data": {
"open_url": "https://service.company.com/items/{item-id}"
},
"android": {
"notification": {
"click_action": "android.intent.action.VIEW",
"data": "https://service.company.com/items/{item-id}"
}
},
"to": "..."
}
......但没有运气。
我错过了什么吗?还是叫错了树?
欢迎任何和所有建议和建议:-)
解决方案
所以我找不到做我想做的事的方法。但是,我可以像这样直接在颤动中处理通知单击事件:
_fcm.configure(
onMessage: (Map<String, dynamic> message) async => _showMessageHandler,
onLaunch: (Map<String, dynamic> message) async => _openMessageHandler,
onResume: (Map<String, dynamic> message) async => _openMessageHandler,
);
只要我以正确的方式发送通知 - 如下所示:
{
"notification": {
"title": "Title",
"body": "Body"
},
"priority": "high",
"data": {
"click_action": "FLUTTER_NOTIFICATION_CLICK",
"open_url": "https://service.company.com/items/{item-id}"
},
"to": "..."
}
推荐阅读
- ios - 通过 withoutResponse 发送 CoreBluetooth 数据包丢失
- oracle - 尽管 isAutoCommit = false,HikariCP 仍进行提交
- r - 由于不受信任的权威机构颁发的证书链,R API 调用失败
- python - 无法抓取“shopee.com.my”畅销产品页面
- python - 在 docker python 中运行复制命令无法处理星号
- google-apps-script - 使用应用脚本将公式添加到特定单元格
- git - 在本地 git config 中使用 smudge 和 cat 覆盖过滤器
- vue.js - Vuetify v-card 提升不显示,flat 属性显示
- mysql - MySql Query 在我的本地版本 (8.0.21) 和我的暂存 (5.7.12) 上的行为不同
- php - Laravel 8资源控制器未获取模型