Android:当我们点击推送通知时,如何在登录活动/身份验证后打开活动

Android:当我们点击推送通知时,如何在登录活动/身份验证后打开活动,android,firebase,notifications,Android,Firebase,Notifications,在应用程序中,需要打开通知并在活动中显示。但如果用户未登录,则必须先将用户重定向到登录,然后再重定向到通知活动 实现这一目标的最佳方式是什么 任何想法或代码都是值得欣赏的。请创建一个启动屏幕,该屏幕将决定去哪里。逻辑应该在启动屏幕中,比如如果用户已通过身份验证(已登录),则将其重定向到您希望他进入的特定屏幕。如果用户未通过身份验证(未登录),请将其重定向到登录屏幕,并从通知发送一个意向标志,单击打开闪屏,说明请求来自通知,一旦登录成功(您还需要从闪屏向登录活动发送标志),如果该标志存在,您可以将

在应用程序中,需要打开通知并在活动中显示。但如果用户未登录,则必须先将用户重定向到登录,然后再重定向到通知活动

实现这一目标的最佳方式是什么


任何想法或代码都是值得欣赏的。

请创建一个启动屏幕,该屏幕将决定去哪里。逻辑应该在启动屏幕中,比如如果用户已通过身份验证(已登录),则将其重定向到您希望他进入的特定屏幕。如果用户未通过身份验证(未登录),请将其重定向到登录屏幕,并从通知发送一个意向标志,单击打开闪屏,说明请求来自通知,一旦登录成功(您还需要从闪屏向登录活动发送标志),如果该标志存在,您可以将其重定向到通知活动。

请创建一个启动屏幕,该屏幕将决定去哪里。逻辑应该在启动屏幕中,比如如果用户已通过身份验证(已登录),则将其重定向到您希望他进入的特定屏幕。如果用户未通过身份验证(未登录),请将其重定向到登录屏幕,并从通知发送一个意向标志,单击打开闪屏,说明请求来自通知,一旦登录成功(您还需要从闪屏向登录活动发送标志),如果该标志存在,您可以将其重定向到通知活动。

请随意使用OneSignal,它可以完美地处理此类需求的通知。在应用程序类中,您可以覆盖接收通知时要执行的操作。此外,我建议将“登录”状态放在一些共享首选项中,或者放在易于检索的位置。对于OneSignal,请尝试使用OneSignal,它可以完美地处理此类需求的通知。在应用程序类中,您可以覆盖接收通知时要执行的操作。此外,我建议将“登录”状态放在一些共享首选项中,或者放在易于检索的位置。对于OneSignal,请尝试查看

我猜这是用户单击通知时应用程序的流程

  • 如果用户已登录,您将打开通知活动
  • 如果用户未登录,您将打开登录活动,登录成功后,转至通知活动
你已经解决了第一个案子。对于第二种情况,当启动登录活动时,应将通知数据放入启动登录活动的
Intent
。比如说

intent.putExtra("notificationData", data); // This intent will be wrapped by your PendingIntent.
在登录活动中,登录成功后,您将在意图中检查是否存在任何
通知数据
。然后,您将决定下一个活动是通知活动还是其他活动(例如,仪表板或主页活动)

登录活动

public void goToNextActivity() {
    Data data = getIntent.getParcelableExtra("notificationData");
    if (data == null) {
        // Go to Dashboard or Home Activity
    } else {
        // Go to Notification Activity
    }
}

我猜这是当用户点击通知时你的应用程序的流程

  • 如果用户已登录,您将打开通知活动
  • 如果用户未登录,您将打开登录活动,登录成功后,转至通知活动
你已经解决了第一个案子。对于第二种情况,当启动登录活动时,应将通知数据放入启动登录活动的
Intent
。比如说

intent.putExtra("notificationData", data); // This intent will be wrapped by your PendingIntent.
在登录活动中,登录成功后,您将在意图中检查是否存在任何
通知数据
。然后,您将决定下一个活动是通知活动还是其他活动(例如,仪表板或主页活动)

登录活动

public void goToNextActivity() {
    Data data = getIntent.getParcelableExtra("notificationData");
    if (data == null) {
        // Go to Dashboard or Home Activity
    } else {
        // Go to Notification Activity
    }
}

请展示一些代码,展示您到目前为止所做的尝试。我已经尝试了打开特定活动的挂起意图,它工作正常。但唯一的挑战是,如果用户未登录或会话为空,则将显示登录活动。您应该首先转到登录活动,然后检查这是否是来自通知单击的呼叫,并且用户已登录。。然后转到通知屏幕。@akshay在创建通知挂起意图时,请检查共享首选项的登录状态,如果为true,则显示通知其他登录,这是直接的解决方案。请显示一些代码,显示您迄今为止所尝试的内容。我已尝试挂起意图打开特定的活动,它工作正常。但唯一的挑战是,如果用户未登录或会话为空,则将显示登录活动。您应该首先转到登录活动,然后检查这是否是来自通知单击的呼叫,并且用户已登录。。然后转到通知屏幕。@akshay在创建通知挂起意图时,检查共享首选项的登录状态,如果为true,则显示通知else登录,这是单击通知时的直接解决方案。然后做其他事情。他并不是在创建一个新的应用程序,我并不是说要创建一个新的应用程序,从splash开始,他会重定向到登录屏幕或那个特定的活动。我不明白你们在说什么。你们能详细说明一下吗?默认情况下,若并没有登录,应用程序将打开登录页面,若登录,它也将打开通知页面。但是我的问题的解决方案是什么。阅读更新后的答案,你可以从通知中发送一个标志单击打开提示,说明请求来自通知,一旦登录成功,你可以在单击通知时将他重定向到通知活动。然后做其他事情。他并不是在创建一个新的应用程序,我并不是说要创建一个新的应用程序,从splash开始,他会重定向到登录屏幕或那个特定的活动。我不明白你们在说什么。你们能详细说明一下吗?默认情况下,若并没有登录,应用程序将打开登录页面,若登录,它也将打开通知页面。但是我的问题的解决方案是什么呢?阅读更新后的答案,你可以发送一个标志,从通知点击到操作