From f63ae07bcb6dddb3262abbf507b34118f30d38d9 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Thu, 25 Jun 2026 18:00:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(push):=20=E6=B7=BB=E5=8A=A0=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E9=80=9A=E7=9F=A5=E7=82=B9=E5=87=BB=20URL=20=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 PushDeepLinkHandler:通过 getLaunchIntentForPackage 启动宿主 App 并携带 xuqm_push_url extra,供 MainActivity 读取后导航 WebView - XuqmVivoPushReceiver.onNotificationMessageClicked 提取 params["url"] 或 skipContent,调用 PushDeepLinkHandler.open() Co-Authored-By: Claude Sonnet 4.6 --- .../com/xuqm/sdk/push/PushDeepLinkHandler.kt | 20 +++++++++++++++++++ .../sdk/push/vivo/XuqmVivoPushReceiver.kt | 9 ++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 sdk-push/src/main/java/com/xuqm/sdk/push/PushDeepLinkHandler.kt diff --git a/sdk-push/src/main/java/com/xuqm/sdk/push/PushDeepLinkHandler.kt b/sdk-push/src/main/java/com/xuqm/sdk/push/PushDeepLinkHandler.kt new file mode 100644 index 0000000..2a71391 --- /dev/null +++ b/sdk-push/src/main/java/com/xuqm/sdk/push/PushDeepLinkHandler.kt @@ -0,0 +1,20 @@ +package com.xuqm.sdk.push + +import android.content.Context +import android.content.Intent +import android.util.Log + +object PushDeepLinkHandler { + + const val EXTRA_PUSH_URL = "xuqm_push_url" + private const val TAG = "PushDeepLinkHandler" + + fun open(context: Context, url: String) { + val pm = context.packageManager + val intent = pm.getLaunchIntentForPackage(context.packageName) ?: return + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP + intent.putExtra(EXTRA_PUSH_URL, url) + Log.d(TAG, "Opening app with push URL: $url") + context.startActivity(intent) + } +} diff --git a/sdk-push/src/main/java/com/xuqm/sdk/push/vivo/XuqmVivoPushReceiver.kt b/sdk-push/src/main/java/com/xuqm/sdk/push/vivo/XuqmVivoPushReceiver.kt index 80df754..1107bc3 100644 --- a/sdk-push/src/main/java/com/xuqm/sdk/push/vivo/XuqmVivoPushReceiver.kt +++ b/sdk-push/src/main/java/com/xuqm/sdk/push/vivo/XuqmVivoPushReceiver.kt @@ -1,10 +1,12 @@ package com.xuqm.sdk.push.vivo import android.content.Context +import android.content.Intent import android.util.Log import com.vivo.push.model.UnvarnishedMessage import com.vivo.push.model.UPSNotificationMessage import com.vivo.push.sdk.OpenClientPushMessageReceiver +import com.xuqm.sdk.push.PushDeepLinkHandler import com.xuqm.sdk.push.PushSDK import com.xuqm.sdk.push.model.PushVendor @@ -25,7 +27,12 @@ class XuqmVivoPushReceiver : OpenClientPushMessageReceiver() { } override fun onNotificationMessageClicked(context: Context, message: UPSNotificationMessage) { - Log.d(TAG, "Vivo notification clicked: ${message.title}") + val url = message.params?.get("url")?.takeIf { it.isNotBlank() } + ?: message.skipContent?.takeIf { it.isNotBlank() } + Log.d(TAG, "Vivo notification clicked: ${message.title}, url=$url") + if (url != null) { + PushDeepLinkHandler.open(context, url) + } } companion object {