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 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 messages = (ArrayList) 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); // } // }); // } } }