首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

应用被杀时,无法导航到推送通知点击的特定屏幕(Flutter android)

应用被杀时,无法导航到推送通知点击的特定屏幕是一个在Flutter Android开发中可能遇到的问题。当应用被杀死后,推送通知点击后无法直接导航到指定的屏幕。

解决这个问题的方法是使用Flutter的本地通知插件,例如flutter_local_notifications。该插件允许应用在后台或被杀死时接收到推送通知,并且可以通过点击通知来导航到指定的屏幕。

以下是解决方案的步骤:

  1. 在Flutter项目的pubspec.yaml文件中添加flutter_local_notifications插件的依赖:
代码语言:txt
复制
dependencies:
  flutter_local_notifications: ^5.0.0
  1. 运行flutter pub get命令来获取插件依赖。
  2. 在应用的入口文件(通常是main.dart)中初始化本地通知插件:
代码语言:txt
复制
import 'package:flutter_local_notifications/flutter_local_notifications.dart';

FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    FlutterLocalNotificationsPlugin();

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await initializeNotifications();
  runApp(MyApp());
}

Future<void> initializeNotifications() async {
  const AndroidInitializationSettings initializationSettingsAndroid =
      AndroidInitializationSettings('app_icon');
  final InitializationSettings initializationSettings =
      InitializationSettings(android: initializationSettingsAndroid);
  await flutterLocalNotificationsPlugin.initialize(initializationSettings);
}
  1. 在接收到推送通知的回调中,使用本地通知插件来显示通知,并设置点击通知时导航到指定屏幕:
代码语言:txt
复制
Future<void> _onNotificationClicked(RemoteMessage message) async {
  // 解析推送通知中的数据,获取导航目标屏幕的信息
  final String screenName = message.data['screen_name'];

  // 使用本地通知插件显示通知
  const AndroidNotificationDetails androidPlatformChannelSpecifics =
      AndroidNotificationDetails(
    'your_channel_id',
    'your_channel_name',
    'your_channel_description',
    importance: Importance.max,
    priority: Priority.high,
  );
  const NotificationDetails platformChannelSpecifics =
      NotificationDetails(android: androidPlatformChannelSpecifics);
  await flutterLocalNotificationsPlugin.show(
    0,
    'Notification Title',
    'Notification Body',
    platformChannelSpecifics,
    payload: screenName, // 将导航目标屏幕的信息作为payload传递
  );
}

// 在main函数中注册通知点击的回调
void main() async {
  // ...
  FirebaseMessaging.onMessageOpenedApp.listen(_onNotificationClicked);
  // ...
}
  1. 在应用的入口文件中处理通知点击后的导航逻辑,根据payload中的信息导航到指定屏幕:
代码语言:txt
复制
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // ...
      initialRoute: '/',
      onGenerateRoute: (settings) {
        if (settings.name == '/') {
          return MaterialPageRoute(builder: (_) => HomeScreen());
        } else if (settings.name == '/details') {
          final String screenName = settings.arguments as String;
          return MaterialPageRoute(
            builder: (_) => DetailsScreen(screenName: screenName),
          );
        }
        return null;
      },
    );
  }
}

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Home')),
      body: Center(
        child: ElevatedButton(
          child: const Text('Go to Details'),
          onPressed: () {
            Navigator.pushNamed(context, '/details', arguments: 'details_screen');
          },
        ),
      ),
    );
  }
}

class DetailsScreen extends StatelessWidget {
  final String screenName;

  const DetailsScreen({required this.screenName});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(screenName)),
      body: Center(child: Text('Details Screen')),
    );
  }
}

通过以上步骤,当应用被杀死后,点击推送通知时将会导航到指定的屏幕。在这个例子中,推送通知点击后将导航到名为"details_screen"的屏幕。

腾讯云相关产品推荐:腾讯云移动推送服务(https://cloud.tencent.com/product/tpns)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

腾讯云IM Flutter-原生混合开发方案接入实践

当您现有应用需要展示腾讯云IM相关页面,可加载对应用于承载FlutterActivity(Android)或ViewController(iOS)。...此方式可为您Android项目和Flutter项目实现一步构建。当您同时处理两个部分并快速迭代,此选项很方便,但您团队必须安装Flutter SDK才能构建应用程序。...监听及转发离线推送点击事件离线推送初始化/Token上报/点击事件对应会话跳转处理,已在Flutter Chat模块中进行,因此,Native区域,仅需透传点击通知事件ext即可。...之所以这么做,是因为点击通知事件已在Native被拦截消费,Flutter无法直接拿到,必须经由Native转发。在 AppDelegate.swift 文件中,新增如下代码。...之所以这么做,是因为点击通知事件已在Native被拦截消费,Flutter无法直接拿到,必须经由Native转发。

7K50

Flutter技术与实战(5)

需要注意是,与纯 Flutter 应用不同,原生应用混编 Flutter 由于涉及原生页面与 Flutter 页面之间切换,因此导航栈内可能会出现多个 Flutter 容器情况,即多个 Flutter...在 iOS 上,苹果推送服务(APNs)接管了系统所有应用消息通知需求;而 Android 原生,则提供了类似 Firebase 云消息传递机制(FCM),可以实现统一推送托管服务。...与 Android 类似,在极光 SDK 收到推送消息,我们应用可能处于后台,因此在用户点击推送消息,把 Flutter 应用唤醒,我们应该在确保 Flutter 已经完全初始化后,才能通知 Flutter...因此在下面的代码中,我们在用户点击推送消息后也等待了 1 秒,才执行相应 Flutter 回调通知。...;如果宽度比较小,那我们就只展示列表,用户可以点击列表,导航页面展示详情。

15.6K30

Android 进程保活招式大全

方案设计思想 监控手机锁屏解锁事件,在屏幕锁屏启动1个像素 Activity,在用户解锁将 Activity 销毁掉。注意该 Activity 需设计成用户无感知。...方案实现挑战 从 Android2.3 开始调用 setForeground 将后台 Service 设置为前台 Service ,必须在系统通知栏发送一条通知,也就是前台 Service 与一条可见通知绑定在一起...对于不需要常驻通知应用来说,该方案虽好,但却是用户感知无法直接使用。 3.2.3....方案设计思想 在发生特定系统事件,系统会发出响应广播,通过在 AndroidManifest 中“静态”注册对应广播监听器,即可在发生响应事件拉活。 常用用于拉活广播事件包括: ?...国内版应用:根据终端不同,在小米手机(包括 MIUI)接入小米推送、华为手机接入华为推送;其他手机可以考虑接入腾讯信鸽或极光推送与小米推送做 A/B Test。

3K70

融云技术分享:融云安卓端IM产品网络链路保活技术实践

当有新消息到达,消息服务首先会判断消息链路是否存活,如果消息链路处于存活状态,消息优先从消息链路下发到客户端,否则会被路由推送服务器,由推送链路下发。...(三):Android6.0及以上保活实践(被杀复活篇)》 《Android进程保活详解:一篇文章解决你所有疑问》 《Android P正式版即将到来:后台应用保活、消息推送真正噩梦》 《全面盘点当前...复合连接机制基本步骤如下: 1)客户端连接导航服务器,导航服务器会下发应用对应配置信息,其中包括连接服务器地址列表; 2)客户端从第一个服务器地址尝试连接,并启动超时机制,如果连接失败或没有及时收到服务响应...主要有以下几种方法: 1.1)监听黑屏事件,启动 1 像素透明 Activity :使应用进程转为可视进程,降低被杀概率。在屏幕,关闭该 Activity 。...《应用保活终极总结(三):Android6.0及以上保活实践(被杀复活篇)》 随着安卓系统版本迭代,对后台进程启动管控越来越严。

2.9K40

开始使用-编写你第一个Flutter应用程序 顶

第1步:创建起始Flutter应用程序 第2步:使用外部包装 第3步:添加一个有状态小部件 第4步:创建一个无限滚动ListView 第5步:添加交互性 第6步:导航屏幕 第7步:使用主题更改UI...这些将由RandomWordsState管理,这使得用户在下一步中从一个屏幕导航另一个屏幕,可以更轻松地更改应用栏中路由名称。...如果您应用程序运行不正常,则可以使用以下链接中代码重新进入正轨。 lib/main.dart 第6步:导航屏幕 在这一步中,您将添加一个显示收藏夹屏幕(在Flutter中称为路由)。...1.向RandomWordsState构建方法中AppBar添加列表图标。 当用户点击列表图标,包含收藏夹项目的新路线被推送导航器,显示该图标。...3.当用户点击应用栏中列表图标,建立一条路由并将其推送导航堆栈。 此操作会更改屏幕以显示新路由。

9.5K20

Firebase In-App Messaging 应用内消息

举例:玩游戏通过某个关卡发送应用内消息促使他们完成重要应用内操作 应用内消息可以自定义,使其显示为卡片、横幅、模态窗口或图片,并设置触发器,使其在合适时机出现 In-App Messaging 集成...iOS、Androidflutter 相关处理,详情可见 In-App Messaging 用途 通过 Firebase 控制台可以修改消息样式、定位和推送时间 Firebase In-App Messaging..._20.png 横幅 通知式消息 不占用大量屏幕空间 Snip20230915_21.png 定位特定用户 根据特定受众群体行为、语言、互动度等信息来定位消息 Snip20230915_23.png...可以是默认事件或自定义事件,应用内消息会在指定事件触发 设置每台设备推送频率限制 Snip20230915_27.png 转化事件 应用内消息将转化为事件进行统计 Snip20230915...automaticDataCollectionEnabled = YES; 自定义 In-App Messaging 消息 In-App Messaging 提供一些消息模板,同时也可以自定义消息模板 向消息添加操作 通过添加操作,您可以使用应用内消息将用户定向某个网站或应用特定界面

27010

集成推送那点事-友盟Mob-FlutterFCM

二、Android 原生集成 - 友盟 v6.0.5 当初采用友盟原因如下: 支持厂商推送 方便运营小伙伴直接友盟查看所有数据 1.1 添加友盟依赖 前期在友盟平台创建当前应用之类就不谈了,注意推送...gradle 添加对此依赖: // 友盟推送 apply from: 'UMeng_Push.gradle' 1.2 初始化友盟推送并设置通知点击动作 在 Application 中进行友盟推送初始化以及点击通知栏后操作...SDK默认在“23:00”“7:00”之间收到通知消息不响铃,不振动,不闪灯 pushAgent.setNoDisturbMode(23, 0, 7, 0) //...} 很多时候我们都希望,即使用户当前未使用 App,或者说当前 App 处于被杀状态,后台推送消息依然想被前台接收。..." android:value="false" /> 到此,FCM 完毕~ 四、Flutter Android 集成 - Mob 此模块在厂商相关信息完善,集成仅仅几分钟~ 相对于 Flutter

11.2K41

第132期:flutter导航和路由

导航和路由 Flutter提供了一个完整用于在屏幕之间导航和处理深层链接系统。...没有复杂深度链接小型应用程序可以使用Navigator,而具有特定深度链接和导航要求应用程序也应该使用Router来正确处理Android和iOS应用深度链接,并在应用程序在web上运行时与地址栏保持同步...命名路由局限 尽管命名路由可以处理深层链接,但是他们表现总是一致,没办法做到自定义。当应用平台接收到一个新深层链接,不论用户此时在哪个位置,Flutter都会将新路线推送导航器上。...使用路由Router 具有高级导航和路由要求Flutter应用程序(例如使用到每个屏幕直接链接web应用程序,或具有多个,或者嵌套导航Navigator组件应用程序)应使用诸如go_router...深度链接 Deep linking Flutter支持iOS、Android和web浏览器上深度链接。打开URL会在应用程序中显示该屏幕

1.9K30

游戏优化系列一:海外谷歌应用适配相关

谷歌应用图标 2. 状态栏消息推送 3. 系统主题风格 4. 导航键 5. 屏幕适配 6. 返回按钮 1....状态栏消息推送 在游戏应用中进行版本迭代,如果游戏本身有消息推送,且SDK中也有推送情况下,发送消息notify方法中,id有可能不同,此时会出现两条消息(游戏和SDK),有可能会被Google...返回键功能官方解释: 1.具有与屏幕上任何后退或关闭按钮相同功能 2.暂停和取消暂停游戏(如果适用) 3.关闭所有对话框窗口 4.导航菜单堆栈中上一个位置(如果适用) 5.第一次登录,在主菜单中按下退出应用程序...具体情境: (1)在游戏启动、资源加载过程,点击系统返回按钮要求能够后退,或者弹框提示用户是否退出游戏;(部分应用在这过程屏蔽了系统按钮,出现被谷歌应用商店拒绝情况) (2)活动弹窗显示点击返回系统按钮要求能够关闭弹窗...示例说明:点击返回按钮无法关闭弹窗 ​ ​

10.5K40

七个用户体验设计小秘诀,打造最舒服互动流程

用于AndroidSoundCloud应用程序要求用户在首次启动要创建或登录帐户。没有其他途径。 商店结帐时经常遇到登录墙。...标签栏 标签栏和导航栏非常适合具有相对较少导航选项应用程序。该模式在iOS和Android上都采用。...标签是伟大,因为它们在前面通过一个简单点击,显示所有主要导航选项,用户可以立即从一个视图另一个视图。对于这种类型导航,我强烈建议使用标签进行导航选项。不要让导航像猜测游戏。 ?...Netflix非常适合个性化推送通知,让用户知道他们最喜欢节目是否可用。 时间通知 将你通知定制用户,而不仅仅是你所说内容,而在于你说时候。不要在奇数时间发送推送通知。...一个真正解决方案将是发送通知,这对于用户来说最方便,除非是立即通知他们关键。According to comScore,推送通知好时机是下午6点晚上10点。始终按照用户时区推送通知。 ?

2.4K60

Android 10 终于来了!增加了不少新特性

Android 10 中,它已经内置整个通知系统中,并且不仅提供对信息回复建议,还可以获得建议操作。...手势导航 引入手势导航后,应用程序不仅可以实现全屏幕内容显示,还能最大限度地减少系统导航可见程度,这对于当下主流全面屏手机尤为重要。...这些说明是实时性和系统性,因此它们不限于特定应用程序。Live Caption 文本框可以调整大小并在屏幕周围移动。...Security Updates 随着这一新功能发布,通过 Google Play Store,安全补丁将自动推送到手机更新应用,更新将在后台运行,并在下次重新启动设备加载,而不必等待完整操作系统更新...[image] Family Link 家长可以使用这一功能设定数字基本规则,如每日屏幕时间限制、设备关机时间、特定应用程序时间限制等。

1.3K40

Flutter 专题】63 图解 Flutter 集成极光 JPush 小结

我们每天都在接收各种推送消息,而最初 Flutter 推送主要是与原生交互进行;现阶段极光推出了 Flutter JPush,虽不如原生强大,但日常需求均可满足,和尚尝试集成了 Flutter...在【推送设置】中设置 Android/iOS 基本信息,和尚以 Android 为例,注意应用包名为 ApplicationID; ? 在【应用信息】中获取 AppKey 等关键参数; ?...清空通知栏 在用户收到推送通知后若未点击,原生 Android 可通过 NotificationManager.cancel() 清除通知Flutter 也提供了清空通知栏方法;但和尚测试只可清空通知推送消息...透传类消息 在极光后台【自定义消息】中按要求编辑目标平台、通知内容、发送时间和选择目标等基本信息;其中 Registration ID 为测试获取唯一标识; ?...---- 和尚认为 Flutter极光推送Android 原生版本差异在于,大部分配置有 App 端移到了极光后台,包括图标 icon,页面处理,通知级别等;和尚仅尝试了基本消息推送及处理

2.1K31

Flutter学习指南App, 一起来玩Flutter吧~

Flutter是谷歌移动UI框架,可以快速在iOS、Android、Web和PC上构建高质量原生用户界面。Flutter可以与现有的代码一起工作。...在全世界,Flutter正在被越来越多开发者和组织使用,并且Flutter是完全免费、开源。同时它也是构建未来Google Fuchsia应用主要方式。...从事移动开发这么多年, 各种跨平台技术层出不穷.从最初基于webphonegap/cordova后来原生组件渲染react-native/weex,再到现在flutter通过自己开发了一套原生控件渲染...如何入门Flutter 1.了解Android/IOS基础知识.包括平台特性、项目结构等. 2.了解Dart基础语法知识.可点击Dart中文网进行学习. 3.学习Flutter基础知识.包括组件使用、包管理...、原生交互等.可点击Flutter中文网进行学习.

1.6K10

Android 手记 | Android MobPush 接入小结

在地铁上我想了很多: 拉活,通过产品各种特性(活动)吸引用户点击使用,进一步验证产品思路、方向; 促进用户粘性,好比今天收到通知,鸡老大直播 ing,马不停蹄点击进去开始膜拜; 重大事件通知与防范,科技力量...、iOS、Windows Phone、QuickApp Android、iOS、Flutter Android、iOS、Flutter、Unity、JavaScript、Cocos2d-X Android...[Kapture 2021-08-16 at 23.13.45.gif] 那如果我们现在应用被杀了呢?再来测试下?...[Kapture 2021-08-16 at 23.17.55.gif] 在这里明显可以观察,当应用被杀(模拟用户非在线时刻),Mob 后台推送并没有及时下发客户端。...我怎么能第一间了解这些?而不是需要个人实际发送通知测试,才能得出结论。

2.1K30

原来Flutter代码是这样运行在原生系统!快来了解Flutter标准模板,感受原生系统中Flutter魅力!

通过Android Studio创建Flutter应用模板,了解Flutter项目结构,分析Flutter工程与原生Android和iOS工程有哪些联系,体验一个有着基本功能Flutter应用是如何运转...Flutter会根据自带应用模板,自动生成简单计数器示例应用Demo。我们先运行此示例,效果如下: 每点击一次右下角带“+”号悬浮按钮,就可以看到屏幕中央数字随之+1。...因为Flutter虽然是跨平台开发方案,但却需要一个容器最终运行Android和iOS平台,所以 Flutter工程实际是同时内嵌Android和iOS原生子工程父工程:在lib目录进行Flutter...setState方法是Flutter以数据驱动视图更新函数,会通知Flutter框架:我这儿有状态改变,赶紧给我刷新界面!..._MyHomePageState通过调用build方法以相应数据配置完成包括导航栏、文本及按钮页面视图创建。 而当按钮被点击之后,其关联控件函数_incrementCounter会触发调用。

35020

几款设计精美的常用Flutter应用程序模板

Flutter是目前最火移动应用开发技术,下面就推荐几款非常出色Flutter应用模板。 1)基于材料设计Flutter模板 基于材料设计库多用途Flutter模板,用于个人和商业项目。...该模板有着非常出色便利性。 2)基于Firebase事件管理模板 Flutter事件应用程序模板可用于Android和iOS设备中事件管理应用程序,易于设置和入门。...该应用程序具有用于通过Google Directions服务指南连接驱动程序内置导航器。已创建一个个人账户,其中包含有关驾驶员出行统计信息。有一个带有付款通知屏幕系统。...要将地图和导航器连接到应用程序,只需将API密钥插入准备好文件中。...有一个现成Facebook登录系统和一个SMS注册系统。有来自Firebase分析和推送通知系统。与服务器即时同步。引入了商品类别和属性过滤器,开发了订购系统。

4.3K40

再谈Android客户端进程保活

进程保活:尽量保证应用进程不被Android系统回收。 在很早以前,谈Android保活都会涉及进程常驻内存,如何进行性能优化等话题,今天就这些话题,做一个简单总结。...搞Android同学都知道,每一个Android应用启动后至少对应一个进程,有的则有多个进程,大多数主流APP都会包含多个进程,因为除了主要进程之外,还有诸如长连接、推送等进程。...2,可见进程 用户正在使用,看得到,但是摸不着,没有覆盖整个屏幕,只有屏幕一部分可见进程不包含任何前台组件,一般系统也是不会杀死可见进程,除非要在资源吃紧情况下,要保持某个或多个前台进程存活。...2,动态心跳 4.5min心跳周期是稳定可靠,但无法确定是最大值。通过终端尝试,可以获取到特定用户网络下,心跳最大值。引入该特性背景: a. 运营商信令风暴 b....GCM: 只要机器上有GMS ,启动就尝试注册GCM,并通知后台。服务器会根据终端是否保持长连,决定是否由GCM通知。GCM主要针对国外比较复杂网络环境。

3.7K71

Flutter 1.22 正式发布

Flutter 1.22中修复 Flutter 1.20.4,修复了部署真机设备问题 当应用程序访问其剪贴板显示使用通知,导致在Flutter应用程序中出现虚假通知,该问题已在Flutter 1.20.4...有关使用Flutter适配iOS 14更多详细信息,包括添加Flutter应用到原生应用,deep linking和通知注意事项,请参阅 flutter.dev上iOS 14文档。...Flutter框架和引擎已更新,以支持最新版本Android中引入两个新功能。 首先,Flutter现在支持多种屏幕适配(比如瀑布屏)。 ?...Navigator 2.0 如果您以前在Flutter应用程序中使用过导航功能,则可能已经注意核心数据结构(用户正在浏览页面堆栈)对您而言是隐藏。...发生这种情况,操作系统会通知应用被终止以快速保存任何UI状态,以便在用户循环回到该应用时可以将其恢复。正确实施后,可以为用户提供无缝体验,同时可以更好地利用设备资源。

7.4K20
领券