通知:在 Android 12 上动态打开不同的活动 - 蹦床限制问题

Notification: Open different Activities dynamically on Android 12 - trampoline restrictions issue

类似问题:

我的问题与上述问题略有不同,因为我要求的是处理深层链接的基本正确方法。

我正在显示由推送通知触发的通知。 如果应用是Multi-Activity架构,应用需要打开不同的Activity取决于deeplink值,那么有2种处理方式:

  1. 首先解释深层链接值,然后在单击时注册正确的 Activity。
  2. 使用透明虚拟 Activity 作为目的地。让 TransparentDeeplinkHandleActivity::class.java 来处理要打开的 Activity。

我是一名 SDK 开发人员,这使得它稍微复杂一些。我不知道客户的目的地 Activity class 以及他们使用的是 Multi-Activity 还是 Single-Activiy-multi-Fragment 架构。

解决方案 2 听起来有点老套。我是否应该实施回调以要求客户端 return 目的地 Activity class 给定深层链接路径?

回答我自己的问题。

我最终选择了解决方案 #2,这是一个 hacky 解决方案:

  1. 使用透明虚拟 Activity 作为目的地。让 TransparentDeeplinkHandleActivity::class.java 来处理要打开的 Activity。

原因是 SDK 在打开客户端的“真实”Activity.

之前需要发送分析

Pre-Android 12,SDK 设计用于打开 BroadCastRecevier 并发送分析。然后 BroadCastReceiver 打开 Activity.

对于 TargetSDK >= 31

,BroadCastRecevier 现在替换为 TransparentDeeplinkHandleActivity