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 {