wjc
昨天 b48b2ecc0882fb68ae0c6bd631bb5b913fe1428c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package com.hdl.photovoltaic.push;
 
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
 
 
import com.alibaba.fastjson.JSONObject;
import com.alibaba.sdk.android.push.popup.OnPushParseFailedListener;
import com.alibaba.sdk.android.push.popup.PopupNotifyClick;
import com.alibaba.sdk.android.push.popup.PopupNotifyClickListener;
import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
import com.hdl.photovoltaic.other.HdlPushLogic;
import com.hdl.photovoltaic.ui.me.AsRegardsActivity;
 
import java.util.Map;
 
/**
 * 商厂通道专用Activity(透明中转页)
 */
public class VendorChannelActivity extends CustomBaseActivity implements PopupNotifyClickListener, OnPushParseFailedListener {
 
    private final static String TAG = "VendorChannelActivity";
    private final PopupNotifyClick mPopupNotifyClick = new PopupNotifyClick(this);
 
 
    @Override
    public Object getContentView() {
        return R.layout.activity_vendor_channel;
    }
 
    @Override
    public void onBindView(Bundle savedInstanceState) {
        mPopupNotifyClick.onCreate(this, getIntent());
        // // 延迟一小段时间确保数据处理好再finish,处理Intent
//        handleIntent(getIntent());
        // 尽快结束,不显示界面
 
    }
 
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        Log.d(TAG, "VendorChannelActivity onNewIntent");
        mPopupNotifyClick.onNewIntent(intent);
 
    }
 
 
    /**
     * 跳转到StartActivity
     */
    private void jumpToStartActivity(String title, String content, Map<String, String> map) {
        try {
            String extra = JSONObject.toJSONString(map);
            PushMessageInfoBean pushMessageInfoBean = HdlPushLogic.getInstance().pushDataProcessing(title, content, extra);
            Intent launchIntent = CustomNotification.getInstance().createNotificationIntent(this, pushMessageInfoBean, CustomNotification.FromPush.AliYun);
            // 启动真正的StartActivity
            startActivity(launchIntent);
            finish();
        } catch (Exception e) {
            try {
                //Log.e(TAG, "跳转到StartActivity失败", e);
                // 如果StartActivity不存在,跳转到MainActivity
                Intent mainIntent = CustomNotification.getInstance().createNotificationIntent(this, null, CustomNotification.FromPush.AliYun);
                startActivity(mainIntent);
                finish();
            } catch (Exception e2) {
                Log.e(TAG, "跳转到MainActivity也失败", e2);
            }
        }
 
    }
 
 
    @Override
    public void finish() {
        super.finish();
//        // 禁用Activity切换动画,实现无缝跳转
//        overridePendingTransition(0, 0);
    }
 
 
    @Override
    public void onSysNoticeOpened(String s, String s1, Map<String, String> map) {
        //TODO 获取推送参数,根据业务需求处理
        jumpToStartActivity(s, s1, map);
 
    }
 
    @Override
    public void onPointerCaptureChanged(boolean hasCapture) {
        super.onPointerCaptureChanged(hasCapture);
    }
 
    /**
     * 不是推送数据的回调
     *
     * @param intent
     */
    @Override
    public void onNotPushData(Intent intent) {
        //TODO 没有推送数据,可能是异常调用,需要异常处理
    }
 
    /**
     * 是推送数据,但是又解密失败时的回调
     *
     * @param intent
     */
    @Override
    public void onParseFailed(Intent intent) {
        //TODO 推送数据解密异常,需要异常处理
    }
 
    /**
     * 解析厂商特定的数据
     */
    private void parseVendorSpecificData(Intent intent) {
        // 小米通道数据解析
        if (intent.hasExtra("miPushMessage")) {
            Log.d(TAG, "小米通道数据");
            // 小米推送的数据结构
        }
 
        // 华为通道数据解析
        if (intent.hasExtra("hms_message_id")) {
            Log.d(TAG, "华为通道数据");
            // 华为推送的数据结构
        }
 
        // OPPO通道数据解析
        if (intent.hasExtra("oppo_push_message")) {
            Log.d(TAG, "OPPO通道数据");
        }
 
        // vivo通道数据解析
        if (intent.hasExtra("vivo_push_message")) {
            Log.d(TAG, "vivo通道数据");
        }
    }
 
}