From db2396b7dc416c3e88e09d3a4104647e5767239e Mon Sep 17 00:00:00 2001 From: jia Date: Mon, 30 Dec 2024 22:33:42 +0800 Subject: [PATCH] x --- iFish7/build.gradle | 16 +--- iFish7/src/main/AndroidManifest.xml | 73 +++++++++++-------- .../activity/RecentContactsActivity.java | 64 ++++++++++++++++ .../java/com/ifish/push/IIntentService.java | 6 +- 4 files changed, 115 insertions(+), 44 deletions(-) diff --git a/iFish7/build.gradle b/iFish7/build.gradle index a8a3ce268..5d0b588c4 100644 --- a/iFish7/build.gradle +++ b/iFish7/build.gradle @@ -22,7 +22,7 @@ android { } signingConfigs { - debug { + config { keyAlias 'android.keystore' keyPassword 'ifish7' storeFile file('../ifish7.keystore') @@ -81,10 +81,11 @@ android { buildTypes { debug { minifyEnabled false - signingConfig signingConfigs.debug + signingConfig signingConfigs.config } release { minifyEnabled false + signingConfig signingConfigs.config } } dexOptions { @@ -172,20 +173,11 @@ dependencies { implementation 'com.getui.opt:honor:3.6.0' // 荣耀 + //华为 implementation 'com.huawei.hms:push:6.12.0.300' // 添加荣耀 SDK implementation 'com.hihonor.mcs:push:7.0.61.303' -// -// // 根据所需厂商选择集成 -// implementation 'com.getui.opt:hwp:3.1.2' // 华为 -// implementation 'com.getui.opt:xmp:3.3.1' // 小米 -// implementation 'com.assist-v3:oppo:3.5.0' // oppo -// implementation 'com.assist-v3:vivo:3.2.0' // vivo -// implementation 'com.getui.opt:mzp:3.2.3' // 魅族 -// implementation 'com.getui.opt:honor:3.6.0' // 荣耀 - //oppo配置以下依赖都需要添加 -// implementation 'com.google.code.gson:gson:2.6.2' implementation 'commons-codec:commons-codec:1.6' implementation 'com.android.support:support-annotations:28.0.0' } \ No newline at end of file diff --git a/iFish7/src/main/AndroidManifest.xml b/iFish7/src/main/AndroidManifest.xml index 89fefedf5..7256fc80b 100644 --- a/iFish7/src/main/AndroidManifest.xml +++ b/iFish7/src/main/AndroidManifest.xml @@ -643,8 +643,19 @@ android:theme="@style/Transparent" /> + android:theme="@style/Transparent"> + + + + + + + - - + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + + + \ No newline at end of file diff --git a/iFish7/src/main/java/com/ifish/activity/RecentContactsActivity.java b/iFish7/src/main/java/com/ifish/activity/RecentContactsActivity.java index 98cde8068..12ba7869c 100644 --- a/iFish7/src/main/java/com/ifish/activity/RecentContactsActivity.java +++ b/iFish7/src/main/java/com/ifish/activity/RecentContactsActivity.java @@ -27,6 +27,7 @@ import com.ifish.utils.AnimationUtil; import com.ifish.utils.Commons; import com.ifish.utils.HttpListener; import com.ifish.utils.HttpManager; +import com.ifish.utils.L; import com.ifish.utils.PushTypeEnum; import com.ifish.utils.ToastUtil; import com.ifish.utils.UnreadCount; @@ -34,14 +35,19 @@ import com.ifish.view.CustomSwipeRefreshLayout; import com.ifish.view.MyCheckView; import com.ifish.view.PopWindowDevice_EventBus; import com.ifish.view.PopWindowPushDel; +import com.igexin.sdk.PushManager; import com.squareup.picasso.Picasso; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.math.BigInteger; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import de.greenrobot.event.EventBus; /** @@ -84,7 +90,65 @@ public class RecentContactsActivity extends BaseFragmentActivity implements Cust initView(); initListener(); startData(); +//获取自定义透传参数值 + Intent intent = getIntent(); + if (null != intent) { + String payload = intent.getStringExtra("payload"); + L.i("payload = " + payload); + } + //上报华为、oppo、vivo离线点击数据 + pushClick(intent); + } + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + //获取自定义透传参数值 + if (null != intent) { + String payload = intent.getStringExtra("payload"); + L.i( "payload = " + payload); + } + } + /** + * 由于华为、oppo 无点击数报表返回,vivo无单推点击数报表返回,所以需要您在客户端埋点上报。 + * 点击厂商通知以后,在触发的activity的onCreate()方法里面接收相关参数,上报这 3 个离线厂商消息的点击数据。 + * 开发者可直接使用此方法示例 + * + * @param intent + * @return + */ + public boolean pushClick(Intent intent) { + boolean result = false; + try { + String taskid = intent.getStringExtra("gttask"); + String gtaction = intent.getStringExtra("gtaction"); + String clientid = PushManager.getInstance().getClientid(this); + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + // 这里的messageid需要自定义, 保证每条消息汇报的都不相同 + String contentToDigest = taskid + clientid + uuid; + byte[] md5s = MessageDigest.getInstance("MD5").digest(contentToDigest.getBytes(StandardCharsets.UTF_8)); + String messageid = new BigInteger(1, md5s).toString(16); + + /*** + * 第三方回执调用接口,可根据业务场景执行 + * 注意:只能用下面回执对应的机型进行上报点击测试,其它机型获取不到 gttask 字段 + * + * 60020 华为点击 + * 60030 oppo点击 + * 60040 vivo点击 + * 60070 荣耀点击 + * + * 埋点接口对应填写获取到的actionid值,如果有获取到 actionid 值,就上报埋点,如 果没有则不用上报。 + * + */ + if (gtaction != null) { + int actionid = Integer.parseInt(gtaction); + result = PushManager.getInstance().sendFeedbackMessage(this, taskid, messageid, actionid); + } + } catch (Exception e) { + //………… + } + return result; } public void onEventMainThread(JpushBean event) {//收到推送 刷新列表 diff --git a/iFish7/src/main/java/com/ifish/push/IIntentService.java b/iFish7/src/main/java/com/ifish/push/IIntentService.java index e3cb90d03..64cfaf008 100644 --- a/iFish7/src/main/java/com/ifish/push/IIntentService.java +++ b/iFish7/src/main/java/com/ifish/push/IIntentService.java @@ -2,6 +2,7 @@ package com.ifish.push; import android.content.Context; import android.content.Intent; +import android.net.Uri; import com.ifish.activity.PushActivity; import com.ifish.activity.RecentContactsActivity; @@ -45,8 +46,11 @@ public class IIntentService extends GTIntentService { super.onNotificationMessageClicked(context, gtNotificationMessage); L.i("jjia---------通知点击---"); Intent intent = new Intent(); - intent.setClass(context, PushActivity.class); + intent.setClass(context, RecentContactsActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + intent.putExtra("payload", "payloadStr"); + intent.setData(Uri.parse("gtpushscheme://com.getui.push/detail?")); context.startActivity(intent); } }