当前位置: 首页 > 知识库问答 >
问题:

离子/电容:触发时将Android应用程序带到前台

林弘壮
2023-03-14

我们有一个非常常见的用例与我们的(通过电容器)Android生成的应用程序:一旦它通过例如Websocket(或第三方应用程序,如OneSignal,Firebase等)接收到消息,我们希望将应用程序带到前台,以防用户当前与其他应用程序(如Skype,Whatsapp等)进行交互。原因是我们已经实现了“警报”场景,如果警报进入,应用程序应该出现在前面并显示正在发生的事情。简单的推送通知在这里无法完成这项工作。

所以我们研究了这个话题,但是因为我们不是土生土长的Android开发者,所以我们不清楚全貌。

例如,Android 在 Firebase 通知中将应用带到前台表明,通过FLAG_ACTIVITY_REORDER_TO_FRONT可以将应用从后台带到前台。

问题是如何在混合应用程序场景中实现这一点(例如Cordova/IONIC/Capacitor)。

在我们的应用程序中,我们可以通过Websocket收听API信号。一旦收到警报,我们就可以通过Websocket向应用程序发送信号,这样我们几乎可以做任何事情。例如,我们可以将来自webapp的信号重定向回app容器。

现在的问题是,如何通过Websocket或Firebase(FCM)解决这个问题,是否可以通过IONIC架构直接解决这个问题?

共有1个答案

那安宁
2023-03-14

在cordova/ionic混合应用程序中,我会使用cordova后台模式插件和window_system_alert权限插件。这两个是我正在使用的,它的工作像一个魔咒。

我将遵循的步骤:

  1. 第一个是将强制启动包含到通知正文中
  2. 第二个是授予应用程序在其他应用程序上绘制的权限。我设法使用这个插件:https://github.com/wryel/cordova-plugin-system-alert-window-permission.它请求SYSTEM_ALERT_WINDOW权限。
  3. 最后一个是安装背景模式插件(https://github.com/katzer/cordova-plugin-background-mode),每当您收到通知时,您都会唤醒终端并在前台显示您的应用程序(启用-

请告诉我,如果我误解了什么,我可以改变我的答案。

 类似资料:
  • 我在Ionic 6框架、Angular和Capacitor中为Android开发了一个应用程序 该应用程序从主页开始,当我单击登录按钮时,代码会在外部浏览器(例如Chrome或Firefox)中打开Microsoft链接。我进行登录,当成功时,它会将我发送回带有url的外部浏览器localhost:8100并且不会进一步。我想问是否有人可以帮助我在应用程序内部集成登录功能,而无需返回localho

  • 我遵循本教程在我的android设备上接收推送通知。 我可以从Firebase控制台发送推送通知-我还可以在logcat中看到Firebase事件,但我的永远不会被触发。我的应用程序在前台运行。 以下是我发送通知后logcat中的输出: MyFirebaseMessageService.java FirebaseIDService.java AndroidManifest.xml: build.g

  • C:\Users\Tuladhar\WebStormProject\myproject cordova build android运行命令:“C:\Program Files\nodejs\node.exe”C:\Users\Tuladhar\WebstormProjects\myproject\hooks\after\u prepare\010\u add\u platform\u类。js C:

  • 我有一个Web/android应用程序,使用Ionic 4和电容器编写,我一直试图从Android服务(通过电容器插件激活)发出的通知中重新进入Ionic应用程序到特定页面,但没有成功。 以下是在服务中创建通知的代码: 我认为我需要在新的意图(这个,MainActivity.class)中/周围添加一些东西,以使电容器/离子电池将应用程序初始化到正确的状态,但我无法确定应该是什么! 我浏览了电容器

  • 我正在用电容器来构建Ionic应用程序。以下是在android Studio中打开android应用程序时运行的命令。 在Android Studio中,我运行了构建并单击Run,然后在我的设备中看到错误。我见过很多帖子都有相同的错误,但是那些帖子都是用build发布的。就我而言,我没有使用Cordova来准备android应用程序。 下面是我的Ionic应用程序的一些摘录。

  • 我使用firebase在iOS中实现推送通知,目标为C。我有方法,根据其描述,当应用程序处于后台且用户点击通知时,以及当应用程序处于前台时,都应该触发该方法。问题是它只能在后台工作(或者当应用程序没有运行时)。我是不是忘了什么?