Browse Source

增加机构端推送跳转

Pq 1 year ago
parent
commit
c98c727526

+ 1 - 0
BaseLibrary/src/main/java/com/cooleshow/base/bean/RouteBean.java

@@ -8,5 +8,6 @@ public class RouteBean {
     public String pageTag;//页面标识
     public String url;//H5连接地址
     public String params;//参数
+    public String clientType;//端
 
 }

+ 1 - 0
BaseLibrary/src/main/java/com/cooleshow/base/constanst/RouteConstants.java

@@ -5,6 +5,7 @@ package com.cooleshow.base.constanst;
  * 路由跳转原生页面标记集合
  */
 public class RouteConstants {
+    public static final String CLIENT_TENANT_TAG="TENANT";//学生端-机构端标记
     public static final String PAGE_TAG_HOMEWORK="homework";//原生跳作业详情页面
     public static final String PAGE_TAG_COURSE_REMIND="courseRemind";//原生直接跳课表
     public static final String PAGE_TAG_BUY_PRACTICE="buyPractice";//购买陪练课->跳转首页课表

+ 1 - 0
BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt

@@ -17,6 +17,7 @@ object RouterPath {
         companion object {
             const val PATH_HOME = "/institution/home"
             const val MINE_PERSONAL_SETTING = "/institution/mine/SettingActivity"
+            const val MESSAGE_BOX = "/institution/mine/JGMessageBoxActivity"
 
         }
     }

+ 5 - 4
institution/src/main/java/com/cooleshow/institution/stu/ui/main/MainActivity.java

@@ -35,6 +35,7 @@ import com.cooleshow.institution.stu.bean.ActivationCodeNumBean;
 import com.cooleshow.institution.stu.contract.MainContract;
 import com.cooleshow.institution.stu.databinding.ActivityInstitutionMainLayoutBinding;
 import com.cooleshow.institution.stu.presenter.MainPresenter;
+import com.cooleshow.institution.stu.utils.JGJumpUtils;
 import com.cooleshow.institution.stu.widget.ActivationCodeTipDialog;
 import com.cooleshow.usercenter.bean.StudentUserInfo;
 import com.cooleshow.usercenter.helper.UserHelper;
@@ -135,12 +136,12 @@ public class MainActivity extends BaseMVPActivity<ActivityInstitutionMainLayoutB
             if (TextUtils.equals(intentResult, PushIntentParseHelper.TT_PUSH_ACTION_TAG)) {
                 //融云推送相关
                 //选中聊天
-                setPositionItem(2);
+                setPositionItem(1);
                 return;
             }
             try {
                 RouteBean routeBean = GsonUtils.fromJson(intentResult, RouteBean.class);
-                JumpUtils.jump(routeBean);
+                JGJumpUtils.jump(routeBean);
             } catch (Exception e) {
                 e.printStackTrace();
             }
@@ -306,8 +307,8 @@ public class MainActivity extends BaseMVPActivity<ActivityInstitutionMainLayoutB
     }
 
     private void bindPushId() {
-        if (isNeedSetPushId && UserHelper.isLogin() && !TextUtils.isEmpty(UserHelper.getUserId())) {
-            String userId = UserHelper.getUserId();
+        String userId = UserHelper.getUserId();
+        if (isNeedSetPushId && UserHelper.isLogin() && !TextUtils.isEmpty(userId)) {
             LogUtils.i("pq", "registrationId:" + BaseApplication.registrationId);
             JPushInterface.setAlias(getApplicationContext(), 1, userId);
             CrashReport.setDeviceId(getApplicationContext(), userId);

+ 83 - 0
institution/src/main/java/com/cooleshow/institution/stu/utils/JGJumpUtils.java

@@ -0,0 +1,83 @@
+package com.cooleshow.institution.stu.utils;
+
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.cooleshow.base.bean.RouteBean;
+import com.cooleshow.base.common.BaseApplication;
+import com.cooleshow.base.common.WebConstants;
+import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.constanst.RouteConstants;
+import com.cooleshow.base.router.RouterPath;
+
+import org.json.JSONObject;
+
+/**
+ * Author by pq, Date on 2022/6/29.
+ */
+public class JGJumpUtils {
+    public static final String ACTION_H5 = "h5";
+    public static final String ACTION_APP = "app";
+
+    public static boolean jump(RouteBean routeBean) {
+        if (routeBean == null) {
+            return false;
+        }
+        try {
+
+            String action = routeBean.action;
+
+            if (TextUtils.equals(action, ACTION_APP)) {
+                //跳转原生页面
+                Log.i("pq", "routeBean tag:" + routeBean.pageTag);
+                ARouter.getInstance().build(RouterPath.JGCenter.MESSAGE_BOX)
+                        .navigation();
+                return true;
+            } else {
+                //跳转H5页面
+                if (TextUtils.isEmpty(routeBean.url)) {
+                    return false;
+                }
+                ARouter.getInstance()
+                        .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                        .withString(WebConstants.WEB_URL, routeBean.url)
+                        .navigation();
+                return true;
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    private static String getParams(String paramsJson, String key) {
+        try {
+            paramsJson.replace("\\", "");
+            JSONObject jsonObject = new JSONObject(paramsJson);
+            return jsonObject.optString(key);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    /**
+     * 跳转首页,选中目标页面
+     *
+     * @param selectPosition
+     */
+    public static void jumpMain(int selectPosition) {
+        ARouter.getInstance().build(RouterPath.APPCenter.PATH_HOME)
+                .withInt(Constants.MAIN_PAGE_SELECT_POTION_KEY, selectPosition)
+                .navigation();
+    }
+
+    public static void jumpJGMainAndSelectChild(int i, int childPos) {
+        ARouter.getInstance().build(RouterPath.JGCenter.PATH_HOME)
+                .withInt(Constants.MAIN_PAGE_SELECT_POTION_KEY, i)
+                .withInt(Constants.MAIN_PAGE_SELECT_CHILD_POTION_KEY, childPos)
+                .navigation();
+    }
+}

+ 9 - 0
student/src/main/java/com/cooleshow/student/ui/main/MainActivity.java

@@ -20,6 +20,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.bean.RouteBean;
 import com.cooleshow.base.common.BaseApplication;
 import com.cooleshow.base.constanst.LoginStatusConstants;
+import com.cooleshow.base.constanst.RouteConstants;
 import com.cooleshow.base.constanst.StyleConfig;
 import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.router.RouterPath;
@@ -141,6 +142,14 @@ public class MainActivity extends BaseMVPActivity<ActivityMainBinding, MainPrese
             }
             try {
                 RouteBean routeBean = GsonUtils.fromJson(intentResult, RouteBean.class);
+                if (!TextUtils.isEmpty(routeBean.clientType) && TextUtils.equals(routeBean.clientType, RouteConstants.CLIENT_TENANT_TAG)) {
+                    //此处跳转机构端
+                    ARouter.getInstance().build(RouterPath.JGCenter.PATH_HOME)
+                            .withString("memo", intentResult)
+                            .navigation();
+                    finish();
+                    return;
+                }
                 JumpUtils.jump(routeBean);
             } catch (Exception e) {
                 e.printStackTrace();