未收到 MixPanel 推送通知
MixPanel Push Notification Not Received
我已经在 MiXPanel 控制台上设置了 MixPanel Push Notification Documentation 中提到的所有内容。我只是在 google 和 MixPanel Docs 上找到了 needfull,这浪费了我的 2 天时间。
这是我的代码
private void initMixPanelForPush() {
try
{
MixpanelAPI mMixpanel = MixpanelAPI.getInstance(this, ConstantsLib.MIXPANEL_PROJECT_ID_TOKEN);
MixpanelAPI.People people = mMixpanel.getPeople();
people.initPushHandling(ConstantsLib.PROJECT_NUMBER);
people.identify(AppSharedPrefs.getInstance(context).getUserId());
people.setPushRegistrationId(AppSharedPrefs.getInstance(context).getDeviceToken());
people.showNotificationIfAvailable(this);
AppController.getInstance().getAnalyticInstance().getAnalyticsContext().putDeviceToken(AppSharedPrefs.getInstance(context).getDeviceToken());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
我使用的变量:
MIXPANEL_PROJECT_ID_TOKEN: 我是从mixPanel ProjectSetting->Management->Token中获取的
PROJECT_NUMBER: project_number 来自 google-service.json 文件
正在注册 Receiver 以获取推送通知。
AndroidManifest.xml
<receiver
android:name="com.mixpanel.android.mpmetrics.GCMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="my_package _name" />
</intent-filter>
</receiver>
将身份发送到细分市场。 (此处添加设备令牌)
Traits traits = new Traits();
traits.putName(basicDetails.getFullName());
traits.putEmail(basicDetails.getContactEmail());
traits.putPhone(basicDetails.getContactNumber());
traits.putValue("userId", basicDetails.getUserId());
traits.putValue("android_devices", AppSharedPrefs.getInstance(context).getDeviceToken());
getAnalyticInstance().identify(AppSharedPrefs.getInstance(this).getUserId(), traits, null);
我正在通过选择用户从 MixPanel 发送推送,但没有进入设备。
如有错误请告知。
我已经解决了这个问题,现在我收到来自 MixPanel 的推送:
我刚刚删除了方法 (initMixPanelForPush) 中不必要的方法调用
更新方法为
private void initMixPanelForPush() {
try
{
MixpanelAPI mMixpanel = MixpanelAPI.getInstance(this, ConstantsLib.MIXPANEL_PROJECT_ID_TOKEN);
mMixpanel.identify(AppSharedPrefs.getInstance(context).getUserId());
mMixpanel.getPeople().identify(AppSharedPrefs.getInstance(context).getUserId());
mMixpanel.getPeople().initPushHandling(ConstantsLib.PROJECT_NUMBER);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
希望对遇到同样问题的其他人有所帮助。
我已经在 MiXPanel 控制台上设置了 MixPanel Push Notification Documentation 中提到的所有内容。我只是在 google 和 MixPanel Docs 上找到了 needfull,这浪费了我的 2 天时间。
这是我的代码
private void initMixPanelForPush() {
try
{
MixpanelAPI mMixpanel = MixpanelAPI.getInstance(this, ConstantsLib.MIXPANEL_PROJECT_ID_TOKEN);
MixpanelAPI.People people = mMixpanel.getPeople();
people.initPushHandling(ConstantsLib.PROJECT_NUMBER);
people.identify(AppSharedPrefs.getInstance(context).getUserId());
people.setPushRegistrationId(AppSharedPrefs.getInstance(context).getDeviceToken());
people.showNotificationIfAvailable(this);
AppController.getInstance().getAnalyticInstance().getAnalyticsContext().putDeviceToken(AppSharedPrefs.getInstance(context).getDeviceToken());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
我使用的变量:
MIXPANEL_PROJECT_ID_TOKEN: 我是从mixPanel ProjectSetting->Management->Token中获取的
PROJECT_NUMBER: project_number 来自 google-service.json 文件
正在注册 Receiver 以获取推送通知。
AndroidManifest.xml
<receiver
android:name="com.mixpanel.android.mpmetrics.GCMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="my_package _name" />
</intent-filter>
</receiver>
将身份发送到细分市场。 (此处添加设备令牌)
Traits traits = new Traits();
traits.putName(basicDetails.getFullName());
traits.putEmail(basicDetails.getContactEmail());
traits.putPhone(basicDetails.getContactNumber());
traits.putValue("userId", basicDetails.getUserId());
traits.putValue("android_devices", AppSharedPrefs.getInstance(context).getDeviceToken());
getAnalyticInstance().identify(AppSharedPrefs.getInstance(this).getUserId(), traits, null);
我正在通过选择用户从 MixPanel 发送推送,但没有进入设备。
如有错误请告知。
我已经解决了这个问题,现在我收到来自 MixPanel 的推送:
我刚刚删除了方法 (initMixPanelForPush) 中不必要的方法调用
更新方法为
private void initMixPanelForPush() {
try
{
MixpanelAPI mMixpanel = MixpanelAPI.getInstance(this, ConstantsLib.MIXPANEL_PROJECT_ID_TOKEN);
mMixpanel.identify(AppSharedPrefs.getInstance(context).getUserId());
mMixpanel.getPeople().identify(AppSharedPrefs.getInstance(context).getUserId());
mMixpanel.getPeople().initPushHandling(ConstantsLib.PROJECT_NUMBER);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
希望对遇到同样问题的其他人有所帮助。