324 lines
15 KiB
Java
324 lines
15 KiB
Java
package cn.shangyu.gdxzExpert.umeng;
|
|
|
|
import static cn.shangyu.gdxzExpert.application.BaseApplication.getContext;
|
|
import static cn.shangyu.gdxzExpert.umeng.PushHelper.readMessage;
|
|
import static cn.shangyu.gdxzExpert.utils.CommonUtil.BigModule;
|
|
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_CLASS_QUALITY_DETAILS;
|
|
import static cn.shangyu.gdxzExpert.utils.StaUtil.EXPERT_PUSH_COURSEWARE_DETAILS;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.util.Log;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.netease.nim.uikit.common.util.log.LogUtil;
|
|
import com.netease.nimlib.sdk.NIMClient;
|
|
import com.netease.nimlib.sdk.NimIntent;
|
|
import com.netease.nimlib.sdk.mixpush.MixPushService;
|
|
import com.netease.nimlib.sdk.msg.MessageBuilder;
|
|
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
|
|
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
|
import com.umeng.analytics.MobclickAgent;
|
|
import com.umeng.message.UmengNotifyClickActivity;
|
|
|
|
import org.android.agoo.common.AgooConstants;
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Map;
|
|
|
|
import cn.shangyu.gdxzExpert.R;
|
|
import cn.shangyu.gdxzExpert.activity.AccumulatePointsActivity;
|
|
import cn.shangyu.gdxzExpert.activity.BillDetailsActivity;
|
|
import cn.shangyu.gdxzExpert.activity.BookshelfListActivity2;
|
|
import cn.shangyu.gdxzExpert.activity.FaPiaoActivity;
|
|
import cn.shangyu.gdxzExpert.activity.GanDanHouseDetialActivity;
|
|
import cn.shangyu.gdxzExpert.activity.MyCoursewareActivity;
|
|
import cn.shangyu.gdxzExpert.activity.MyFlowerActivity;
|
|
import cn.shangyu.gdxzExpert.activity.MyFuliCardActivity;
|
|
import cn.shangyu.gdxzExpert.activity.WebActivity;
|
|
import cn.shangyu.gdxzExpert.big.activity.BigPointsMallActivity;
|
|
import cn.shangyu.gdxzExpert.netease.mixpush.DemoMixPushMessageHandler;
|
|
import cn.shangyu.gdxzExpert.pointsmall.PointsMallActivity;
|
|
import cn.shangyu.gdxzExpert.polyvplayer.CourseDetailPolyvPlayerActivity;
|
|
import cn.shangyu.gdxzExpert.polyvplayer.QualityCourseActivity;
|
|
import cn.shangyu.gdxzExpert.polyvplayer.VideoDetailPolyvPlayerActivity;
|
|
import cn.shangyu.gdxzExpert.splash.WelcomeUI;
|
|
import cn.shangyu.gdxzExpert.utils.GsonTools;
|
|
import cn.shangyu.gdxzExpert.utils.MyUserIconUtil;
|
|
import cn.shangyu.gdxzExpert.utils.StringUtil;
|
|
import cn.shangyu.gdxzExpert.utils.UniappUtil;
|
|
import cn.shangyu.gdxzExpert.utils.Url;
|
|
|
|
/**
|
|
* 厂商通道配置托管启动的Activity
|
|
* 如点击小米、华为、OPPO、vivo等系统通道的通知消息,启动的Activity类
|
|
*/
|
|
public class MfrMessageActivity extends UmengNotifyClickActivity {
|
|
|
|
private static final String TAG = "MfrMessageActivity";
|
|
|
|
@Override
|
|
protected void onCreate(Bundle bundle) {
|
|
super.onCreate(bundle);
|
|
setContentView(R.layout.mfr_message_layout);
|
|
// onIntent();
|
|
}
|
|
// 处理收到的Intent
|
|
private void onIntent() {
|
|
LogUtil.i(TAG, "onIntent...");
|
|
LogUtil.i("G2", "onIntent...");
|
|
|
|
|
|
// 已经登录过了,处理过来的请求
|
|
Intent intent = getIntent();
|
|
if (intent != null) {
|
|
if(intent.getExtras()!=null)
|
|
{
|
|
Log.d(TAG, "intent.getExtras(): " + intent.getExtras().toString());
|
|
}
|
|
if (intent.hasExtra(NimIntent.EXTRA_NOTIFY_CONTENT)) {
|
|
parseNotifyIntent(intent);
|
|
return;
|
|
} else if (NIMClient.getService(MixPushService.class).isFCMIntent(intent)) {
|
|
parseFCMNotifyIntent(NIMClient.getService(MixPushService.class).parseFCMPayload(intent));
|
|
}
|
|
}
|
|
}
|
|
private void parseFCMNotifyIntent(String payloadString) {
|
|
Map<String, String> payload = JSON.parseObject(payloadString, Map.class);
|
|
String sessionId = payload.get(DemoMixPushMessageHandler.PAYLOAD_SESSION_ID);
|
|
String type = payload.get(DemoMixPushMessageHandler.PAYLOAD_SESSION_TYPE);
|
|
if (sessionId != null && type != null) {
|
|
int typeValue = Integer.valueOf(type);
|
|
IMMessage message = MessageBuilder.createEmptyMessage(sessionId, SessionTypeEnum.typeOfValue(typeValue), 0);
|
|
// showMainActivity(new Intent().putExtra(NimIntent.EXTRA_NOTIFY_CONTENT, message));
|
|
} else {
|
|
// showMainActivity(null);
|
|
}
|
|
}
|
|
private void parseNotifyIntent(Intent intent) {
|
|
ArrayList<IMMessage> messages = (ArrayList<IMMessage>) intent.getSerializableExtra(NimIntent.EXTRA_NOTIFY_CONTENT);
|
|
if (messages == null || messages.size() > 1) {
|
|
// showMainActivity(null);
|
|
} else {
|
|
// showMainActivity(new Intent().putExtra(NimIntent.EXTRA_NOTIFY_CONTENT, messages.get(0)));
|
|
}
|
|
}
|
|
@Override
|
|
public void onMessage(Intent intent) {
|
|
|
|
if(intent==null)
|
|
return;
|
|
Bundle bundle = intent.getExtras();
|
|
if (bundle != null) {
|
|
Log.d(TAG, "bundle: " + bundle);
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
super.onMessage(intent);
|
|
final String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
|
|
try {
|
|
|
|
JSONObject jsonObject = new JSONObject(body);
|
|
PushBean pushBean= GsonTools.fromGsonToBean(body,PushBean.class);
|
|
if(pushBean!=null&&pushBean.getExtra()!=null&& !StringUtil.isEmpty(pushBean.getExtra().getMessage_id()))
|
|
{
|
|
readMessage(pushBean.getExtra().getMessage_id());
|
|
}
|
|
if(pushBean!=null&&pushBean.getExtra()!=null&&pushBean.getExtra().getType()!=null)
|
|
{
|
|
Intent intent3=new Intent();
|
|
|
|
switch (pushBean.getExtra().getType())
|
|
{
|
|
case "1":
|
|
intent3.setClass(getContext(),PushNewsDetailActivity.class);
|
|
intent3.putExtra("title", "新闻详情");
|
|
intent3.putExtra("newsuuid", pushBean.getExtra().getUuid());
|
|
intent3.putExtra("flag", 3);
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"3"://肝胆视频
|
|
Intent intent4 = VideoDetailPolyvPlayerActivity.newIntent(getContext(), VideoDetailPolyvPlayerActivity.PlayMode.portrait,"");
|
|
// 在线视频和下载的视频播放的时候只显示播放器窗口,用该参数来控制
|
|
intent4.putExtra("startNow", false);
|
|
intent4.putExtra("isVlmsOnline", false);
|
|
intent4.putExtra("uuid", pushBean.getExtra().getUuid());
|
|
intent4.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent4);
|
|
finish();
|
|
break;
|
|
case"4"://直播
|
|
intent3.setType("zhibo");
|
|
intent3.setClass(getContext(),PushZhiBoActivity.class);
|
|
intent3.putExtra("id", pushBean.getExtra().getId());
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"5"://肝胆课件
|
|
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_COURSEWARE_DETAILS);
|
|
intent3.setClass(getContext(),PushCourseUrlDetailActivity.class);
|
|
intent3.putExtra("uuid", pushBean.getExtra().getUuid());
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"6"://精品课
|
|
case"7":
|
|
MobclickAgent.onEvent(getContext(),EXPERT_PUSH_CLASS_QUALITY_DETAILS);
|
|
intent3.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
|
|
intent3.putExtra("excellentcourse_id", pushBean.getExtra().getId());
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"9"://积分商城
|
|
if(BigModule())
|
|
{
|
|
intent3.setClass(getContext(), BigPointsMallActivity.class);
|
|
}
|
|
else
|
|
{
|
|
// intent3.setClass(getContext(), PointsMallActivity.class);
|
|
UniappUtil.showUniMp(getContext(), "/pages_goods/pointMall/pointMall", null);
|
|
break;
|
|
}
|
|
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"10"://指南
|
|
intent3.setClass(getContext(), BookshelfListActivity2.class);
|
|
intent3.putExtra("typeUuid", pushBean.getExtra().getUuid());
|
|
intent3.putExtra("title", pushBean.getExtra().getName());
|
|
intent3.putExtra("loadUrl", Url.getGuideList);
|
|
intent3.putExtra("type", "0");
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"11"://普通url
|
|
intent3.setClass(getContext(), WebActivity.class);
|
|
intent3.putExtra("url",pushBean.getExtra().getUrl());
|
|
intent3.putExtra("title","推送消息");
|
|
intent3.putExtra("need_share","0");
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"15"://精品课评论
|
|
// intent3.setClass(getContext(), CourseDetailPolyvPlayerActivity.class);
|
|
// intent3.putExtra("excellentcourse_id", pushBean.getExtra().getId());
|
|
// intent3.putExtra("pinglun","yes");
|
|
// intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
// getContext().startActivity(intent3);
|
|
// finish();
|
|
// break;
|
|
case"16"://一问多答
|
|
case"17"://病例讨论
|
|
intent3.setClass(getContext(), NewSystemMessageActivity.class);
|
|
intent3.putExtra("module",3);
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"18"://送花
|
|
intent3.setClass(getContext(), MyFlowerActivity.class);
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"19"://课件收益
|
|
intent.setClass(getContext(), MyCoursewareActivity.class);
|
|
intent.putExtra("changeMyCoolect",1);
|
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent);
|
|
break;
|
|
case"21"://提现
|
|
intent3.setClass(getContext(), BillDetailsActivity.class);
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"20"://发票
|
|
intent3.setClass(getContext(), FaPiaoActivity.class);
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case"28"://课件分享
|
|
case"30"://精品课优质评价
|
|
case"31"://学完返现
|
|
case"32"://福利课堂
|
|
case"33"://阅读福利
|
|
case"34"://观看福利
|
|
case"36"://特别奖励
|
|
// intent3.setClass(getContext(), AccumulatePointsActivity.class);
|
|
// intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
// getContext().startActivity(intent3);
|
|
|
|
UniappUtil.showUniMp(getContext(), "/pages_app/myPoint/myPoint", null);
|
|
finish();
|
|
break;
|
|
case"35"://福利卡
|
|
intent3.setClass(getContext(), MyFuliCardActivity.class);
|
|
intent3.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent3);
|
|
finish();
|
|
break;
|
|
case "40"://互动圈
|
|
intent.setClass(getContext(), GanDanHouseDetialActivity.class);
|
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
intent.putExtra("uuid",pushBean.getExtra().getUuid());
|
|
getContext().startActivity(intent);
|
|
break;
|
|
default:
|
|
intent3.setClass(MfrMessageActivity.this, WelcomeUI.class);
|
|
startActivity(intent3);
|
|
finish();
|
|
break;
|
|
}
|
|
|
|
}
|
|
else if(jsonObject.optJSONObject("extra")!=null&&!(jsonObject.getJSONObject("extra").isNull("url")))
|
|
{
|
|
Intent intent2=new Intent(getContext(), WebActivity.class);
|
|
intent2.putExtra("url",jsonObject.getJSONObject("extra").getString("url"));
|
|
intent2.putExtra("title","推送消息");
|
|
intent2.putExtra("need_share","0");
|
|
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
getContext().startActivity(intent2);
|
|
finish();
|
|
}
|
|
else
|
|
{
|
|
Intent intent1 = new Intent();
|
|
intent1.setClass(MfrMessageActivity.this, WelcomeUI.class);
|
|
startActivity(intent1);
|
|
finish();
|
|
}
|
|
|
|
|
|
} catch (JSONException e) {
|
|
e.printStackTrace();
|
|
}
|
|
// Log.d(TAG, "body: " + body);
|
|
// if (!TextUtils.isEmpty(body)) {
|
|
// runOnUiThread(new Runnable() {
|
|
// @Override
|
|
// public void run() {
|
|
// ((TextView) findViewById(R.id.tv)).setText(body);
|
|
// }
|
|
// });
|
|
// }
|
|
}
|
|
}
|