feat(sdk-push): 小米推送点击通知时调度点击事件并传递 URL
onNotificationMessageClicked 解析 payload JSON 中的 url 字段, 通过 PushSDK.dispatchNotificationClick 传给 PushNotificationHelper, MainActivity 收到 url 后加载到 WebView。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
90975edc50
当前提交
1cdcc7e7b4
@ -6,6 +6,7 @@ import com.xiaomi.mipush.sdk.MiPushCommandMessage
|
|||||||
import com.xiaomi.mipush.sdk.MiPushMessage
|
import com.xiaomi.mipush.sdk.MiPushMessage
|
||||||
import com.xiaomi.mipush.sdk.PushMessageReceiver
|
import com.xiaomi.mipush.sdk.PushMessageReceiver
|
||||||
import com.xuqm.sdk.push.PushSDK
|
import com.xuqm.sdk.push.PushSDK
|
||||||
|
import com.xuqm.sdk.push.model.PushNotificationClickEvent
|
||||||
import com.xuqm.sdk.push.model.PushVendor
|
import com.xuqm.sdk.push.model.PushVendor
|
||||||
|
|
||||||
class XuqmXiaomiPushReceiver : PushMessageReceiver() {
|
class XuqmXiaomiPushReceiver : PushMessageReceiver() {
|
||||||
@ -30,6 +31,27 @@ class XuqmXiaomiPushReceiver : PushMessageReceiver() {
|
|||||||
|
|
||||||
override fun onNotificationMessageClicked(context: Context, message: MiPushMessage) {
|
override fun onNotificationMessageClicked(context: Context, message: MiPushMessage) {
|
||||||
Log.d(TAG, "Xiaomi notification clicked: ${message.title}")
|
Log.d(TAG, "Xiaomi notification clicked: ${message.title}")
|
||||||
|
val params = mutableMapOf<String, String>()
|
||||||
|
// Extract URL from payload JSON
|
||||||
|
val content = message.content?.takeIf { it.isNotBlank() }
|
||||||
|
if (content != null) {
|
||||||
|
runCatching {
|
||||||
|
val json = org.json.JSONObject(content)
|
||||||
|
val url = json.optString("url", "")
|
||||||
|
if (url.isNotBlank()) params["url"] = url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Also copy extra.* fields
|
||||||
|
message.extra?.forEach { (k, v) -> if (v != null) params[k] = v }
|
||||||
|
|
||||||
|
val event = PushNotificationClickEvent(
|
||||||
|
vendor = PushVendor.XIAOMI,
|
||||||
|
title = message.title,
|
||||||
|
content = message.description ?: content,
|
||||||
|
params = params,
|
||||||
|
skipContent = null,
|
||||||
|
)
|
||||||
|
PushSDK.dispatchNotificationClick(context, event)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCommandResult(context: Context, message: MiPushCommandMessage) {
|
override fun onCommandResult(context: Context, message: MiPushCommandMessage) {
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户