写点什么

MobPush Android SDK API

  • 2023-03-23
    上海
  • 本文字数:6574 字

    阅读完需:约 22 分钟

推送监听接口 (addPushReceiver)

描述:添加推送监听,可监听接收到的自定义消息(透传消息)、通知消息、通知栏点击事件、别名和标签变更操作。


/** * com.mob.pushsdk.MobPush.class * MobPush推送监听接口 * @param receiver 监听 */public static void addPushReceiver(MobPushReceiver receiver)
复制代码


示例代码


MobPushReceiver mobPushReceiver = new MobPushReceiver() {         @Override        public void onCustomMessageReceive(Context context, MobPushCustomMessage message) {            //接收到自定义消息(透传消息)            message.getMessageId();//获取任务ID            message.getContent();//获取推送内容        }         @Override        public void onNotifyMessageReceive(Context context, MobPushNotifyMessage message) {            //接收到通知消息            message.getMobNotifyId();//获取消息ID            message.getMessageId();//获取任务ID            message.getTitle();//获取推送标题            message.getContent();//获取推送内容        }         @Override        public void onNotifyMessageOpenedReceive(Context context, MobPushNotifyMessage message) {            //通知被点击事件            message.getMobNotifyId();//获取消息ID            message.getMessageId();//获取任务ID            message.getTitle();//获取推送标题            message.getContent();//获取推送内容        }         @Override        public void onTagsCallback(Context context, String[] tags, int operation, int errorCode) {            //标签操作回调            //tags: RegistrationId已添加的标签            //operation: 0获取标签 1设置标签 2删除标签            //errorCode: 0操作成功 非0操作失败        }         @Override        public void onAliasCallback(Context context, String alias, int operation, int errorCode) {            //别名操作回调            //alias: RegistrationId对应的别名            //operation: 0获取别名 1设置别名 2删除别名            //errorCode: 0操作成功 非0操作失败        }     };
复制代码

移除推送监听接口 (removePushReceiver)

描述:移除通知监听,与 addPushReceiver()对应,添加推送监听后,在关闭界面时调用进行移除,移除之前添加过的推送监听。


/** * com.mob.pushsdk.MobPush.class * 移除Push监听接口 * @param receiver 监听 */ public static void removePushReceiver(MobPushReceiver receiver)
复制代码


示例代码


MobPush.removePushReceiver(receiver);
复制代码

获取注册 Id (getRegistrationId)

描述:获取注册 id。RegistrationId 是 MobPush 针对不同用户生成的唯一标识符,可通过 RegistrationId 向用户推送消息。


/** * com.mob.pushsdk.MobPush.class * 获取注册id  * @param callback 回调 */ public static void getRegistrationId(MobPushCallback<String>  callback)
复制代码


示例代码


MobPush.getRegistrationId(new MobPushCallback<String>() {            @Override            public void onCallback(String s) {                Log.i(TAG, "RegistrationId: "+s);            } });
复制代码

设置别名 (setAlias)

描述:设置别名。别名是唯一的,与 RegistrationId 为一对一关系。如多次调用,会以最后一次设置为准,进行覆盖;


是否设置成功,会在 addPushReceiver()->MobPushReceiver-> onAliasCallback(Context context, String alias, int operation, int errorCode)中进行回调返回。当 operation 为 0 时,表示获取别名操作;当 operation 为 1 时,表示设置别名操作;当 operation 为 2 时,表示删除别名操作。当 errorCode 为 0 时,表示操作成功;当 errorCode 非 0 时,表示操作失败。


别名支持:字母(区分大小写)、数字、下划线、汉字、特殊字符 @!#$&*+=.|。


/** * com.mob.pushsdk.MobPush.class * 设置别名 * @param alias 想要设置的别名 */ public static void setAlias(String alias)
复制代码


示例代码


MobPush.setAlias("想要设置的别名");
复制代码

删除别名 (deleteAlias)

描述:删除别名。


是否删除成功,会在 addPushReceiver()->MobPushReceiver-> onAliasCallback(Context context, String alias, int operation, int errorCode)中进行回调返回。当 operation 为 0 时,表示获取别名操作;当 operation 为 1 时,表示设置别名操作;当 operation 为 2 时,表示删除别名操作。当 errorCode 为 0 时,表示操作成功;当 errorCode 非 0 时,表示操作失败。


/** * com.mob.pushsdk.MobPush.class * 删除别名 */ public static void deleteAlias()
复制代码


示例代码


MobPush.deleteAlias();
复制代码

获取别名 (getAlias)

描述:获取别名。


是否获取成功,会在 addPushReceiver()->MobPushReceiver-> onAliasCallback(Context context, String alias, int operation, int errorCode)中进行回调返回。当 operation 为 0 时,表示获取别名操作;当 operation 为 1 时,表示设置别名操作;当 operation 为 2 时,表示删除别名操作。当 errorCode 为 0 时,表示操作成功;当 errorCode 非 0 时,表示操作失败。


/** * com.mob.pushsdk.MobPush.class * 获取别名 */ public static void getAlias()
复制代码


示例代码


MobPush.getAlias();
复制代码

添加标签 (addTags)

描述:添加标签。标签可以添加多个,每次调用都会在原来的基础上进行追加。


是否获取成功,会在 addPushReceiver()->MobPushReceiver-> onTagsCallback(Context context, String[] tags, int operation, int errorCode)中进行回调返回。当 operation 为 0 时,表示获取标签操作;当 operation 为 1 时,表示设置标签操作;当 operation 为 2 时,表示删除标签操作。当 errorCode 为 0 时,表示操作成功;当 errorCode 非 0 时,表示操作失败。


标签支持:字母(区分大小写)、数字、下划线、汉字、特殊字符 @!#$&*+=.|。


/** * com.mob.pushsdk.MobPush.class * 添加标签 * @param tags  想要添加的标签 */ public static void addTags(String[] tags)
复制代码


示例代码


MobPush.addTags(new String[]{"想要添加的标签1", "想要添加的标签2"});
复制代码

删除标签 (deleteTags)

描述:删除标签。


是否获取成功,会在 addPushReceiver()->MobPushReceiver-> onTagsCallback(Context context, String[] tags, int operation, int errorCode)中进行回调返回。当 operation 为 0 时,表示获取标签操作;当 operation 为 1 时,表示设置标签操作;当 operation 为 2 时,表示删除标签操作。当 errorCode 为 0 时,表示操作成功;当 errorCode 非 0 时,表示操作失败。


/** * com.mob.pushsdk.MobPush.class * 添加标签 * @param tags  想要删除的标签 */ public static void deleteTags(String[] tags)
复制代码


示例代码


MobPush.deleteTags(new String[]{"想要删除的标签1", "想要删除的标签2"});
复制代码

获取标签 (getTags)

描述:获取标签。


是否获取成功,会在 addPushReceiver()->MobPushReceiver-> onTagsCallback(Context context, String[] tags, int operation, int errorCode)中进行回调返回。当 operation 为 0 时,表示获取标签操作;当 operation 为 1 时,表示设置标签操作;当 operation 为 2 时,表示删除标签操作。当 errorCode 为 0 时,表示操作成功;当 errorCode 非 0 时,表示操作失败。


/** * com.mob.pushsdk.MobPush.class * 获取标签 */ public static void getTags()
复制代码


示例代码


MobPush.getTags();
复制代码

清空标签 (cleanTags)

描述:清空标签。


是否清空成功,会在 addPushReceiver()->MobPushReceiver-> onTagsCallback(Context context, String[] tags, int operation, int errorCode)中进行回调返回。当 operation 为 0 时,表示获取标签操作;当 operation 为 1 时,表示设置标签操作;当 operation 为 2 时,表示删除标签操作。当 errorCode 为 0 时,表示操作成功;当 errorCode 非 0 时,表示操作失败。


/** * com.mob.pushsdk.MobPush.class * 清空标签 */ public static void cleanTags()
复制代码


示例代码


MobPush.cleanTags();
复制代码

设置静音时段 (setSilenceTime)

描述:设置静音时段。几点几分开始到几点几分结束,这段时间属于静音时间段,接收到推送时,提醒类型属于静音状态。


/** * com.mob.pushsdk.MobPush.class * 设置静音时段 * @param startHour     开始静音时间(时) * @param startMinute  开始静音时间(分) * @param endHour      结束静音时间(时) * @param endMinute   结束静音时间(分) */ public static void setSilenceTime(int startHour, int startMinute, int endHour, int  endMinute)
复制代码


示例代码


MobPush.setSilenceTime(20, 0, 0, 0);//设置静音时间段晚上20:00到00:00
复制代码

添加本地通知 (addLocalNotification)

描述:添加本地通知。不通过服务器推送,客户端主动发送通知。


/** * com.mob.pushsdk.MobPush.class * 添加本地通知 * @param localNotification 本地通知 * @return  true 添加成功 false添加失败 */ public static boolean addLocalNotification(MobPushLocalNotification localNotification)
复制代码


示例代码


MobPushLocalNotification localNotification = new MobPushLocalNotification(); localNotification.setTitle("本地通知标题"); localNotification.setContent("本地通知内容");        ...  MobPush.addLocalNotification(localNotification);
复制代码

移除本地通知 (removeLocalNotification)

描述:移除本地通知。


/** * com.mob.pushsdk.MobPush.class * 移除本地通知 * @param lnotificationId 本地通知ID * @return  true 移除成功 false移除失败 */ public static boolean removeLocalNotification(int lnotificationId)
复制代码


示例代码


MobPush.removeLocalNotification(想要移除的本地通知ID);
复制代码

清空本地通知 (clearLocalNotifications)

描述:清空本地通知。


/** * com.mob.pushsdk.MobPush.class * 清空本地通知 * @return  true 清空成功 false清空失败 */ public static boolean clearLocalNotifications()
复制代码


示例代码


MobPush.clearLocalNotifications();
复制代码

推送服务是否已停止 (isPushStopped)

描述:推送服务是已否停止。


/** * com.mob.pushsdk.MobPush.class * 推送服务是已否停止 * @param callback 回调 */ public static void isPushStopped(MobPushCallback callback)
复制代码


示例代码


MobPush.isPushStopped(new MobPushCallback<Boolean>() {      @Override      public void onCallback(Boolean o) {          Log.i(TAG, "isPushStopped:"+o);      } });
复制代码

停止推送服务 (stopPush)

描述:停止推送服务,不继续接收推送。


/** * com.mob.pushsdk.MobPush.class * 停止推送服务 */ public static void stopPush()
复制代码


示例代码


MobPush.stopPush();
复制代码

重启推送服务 (restartPush)

描述:推送服务停止后,重新启动推送服务。


/** * com.mob.pushsdk.MobPush.class * 重启推送服务 */ public static void restartPush()
复制代码


示例代码


MobPush.restartPush();
复制代码

点击通知是否启动主页 (setClickNotificationToLaunchMainActivity)

描述:设置点击通知是否启动默认页。默认为启动。


/** * com.mob.pushsdk.MobPush.class * 设置点击通知是否启动主页 * @param isLaunch 是否启动默认页 true打开 false不打开 */ public static void setClickNotificationToLaunchMainActivity(boolean isLaunch)
复制代码


示例代码


MobPush.setClickNotificationToLaunchMainActivity(true);
复制代码

设置通知图标 (setNotifyIcon)

描述:设置通知图标。通知默认使用应用图标,调用此方法来修改通知图标。


/** * com.mob.pushsdk.MobPush.class * 设置通知图标 * @param icon 通知图标 */ public static void setNotifyIcon(int icon)
复制代码


示例代码


MobPush.setNotifyIcon(R.mipmap.ic_launcher);
复制代码

设置是否显示角标 (setShowBadge)

描述:设置是否显示角标,用于接收通知时显示角标数量。


/** * com.mob.pushsdk.MobPush.class * 设置是否显示角标 * @param isShowBadge 是否显示角标 true显示 false不显示 */ public static void setShowBadge(boolean isShowBadge)
复制代码


示例代码


MobPush.setShowBadge(true);
复制代码

设置显示角标数 (setBadgeCounts)

描述:设置显示的角标数,需要用户根据自己的逻辑设置。


/** * com.mob.pushsdk.MobPush.class *设置显示的角标数 *@param counts 角标数 */ public static void setBadgeCounts(int counts)
复制代码


示例代码


MobPush.setBadgeCounts(0);
复制代码

统计厂商点击数 (重要 notificationClickAck)

描述:统计厂商通道下发通知的点击数,如不设置,无法准确统计到厂商通道下发通知的点击数,建议加上。不设置仅影响厂商通道的点击数,不影响 MobPush 通道点击数统计。


/** * com.mob.pushsdk.MobPush.class *统计厂商点击数 *@param intent 上下文 */public static void notificationClickAck(Intent intent)
复制代码


示例代码


MobPush.notificationClickAck(getIntent());
复制代码

设置通知栏显示的最大通知条数 (setNotificationMaxCount)

描述:通知栏显示的最大通知条数, 需大于 0。


/** * com.mob.pushsdk.MobPush.class *设置通知栏显示的最大通知条数 *@param count 最大通知条数 */ public static void setNotificationMaxCount(int count)
复制代码


示例代码


MobPush.setNotificationMaxCount(5)
复制代码

获取设置的通知栏显示通知的最大条数 (getNotificationMaxCount)

描述:通知栏显示的最大通知条数


/** * com.mob.pushsdk.MobPush.class * 获取设置的通知栏显示通知的最大条数 *@return  设置的具体条数 */ public static int getNotificationMaxCount()
复制代码


示例代码


MobPush.getNotificationMaxCount()
复制代码

获取 TCP 状态 (checkTcpStatus)

描述:获取 TCP 状态 判断 TCP 状态是否正常


/** * com.mob.pushsdk.MobPush.class * 获取TCP状态 * @param callback 回调 */ public static void checkTcpStatus(MobPushCallback callback)
复制代码


示例代码


MobPush.checkTcpStatus(new MobPushCallback<Boolean>() {      @Override      public void onCallback(Boolean o) {          Log.i(TAG, "checkTcpStatus:"+o);      } });
复制代码

打开轮询开关 (startNotificationMonitor)

描述:MobPush 只会在初始化的时候更新记录的通知权限状态。如需要实时更新,可调用该方法:


/** * com.mob.pushsdk.MobPush.class * 打开轮询开关 */ public static void startNotificationMonitor()
复制代码


示例代码


MobPush.startNotificationMonitor();
复制代码

关闭轮询开关 (stopNotificationMonitor)

描述:关闭权限轮询开关


/** * com.mob.pushsdk.MobPush.class * 关闭轮询开关 */public static void stopNotificationMonitor()
复制代码


示例代码


MobPush.stopNotificationMonitor();
复制代码

功能自定义和扩展

scheme 跳转

前言:此功能仅仅是针对 push 的一些使用场景而进行自定义设定。比如,通知被点击的时候:


通过 scheme 设置配置跳转


首先现在 Manifest 文件中进行目标 Activity 的 uri 设置,如下:


<activity    android:name=".LinkActivity">    <intent-filter>        <action android:name="android.intent.action.VIEW" />        <category android:name="android.intent.category.DEFAULT" />        <data            android:host="com.mob.mobpush.link"            android:scheme="mlink" />    </intent-filter></activity>
复制代码


在 Mob 后台进行推送时,通过 scheme://host 的格式,例如 mlink://com.mob.mobpush.link,如下位置填入:



配置好之后,推送就 App 就可以接收到推送直接打开指定的 Activity 界面了,建议统一设置一个中转页,根据传递参数后再进行跳转。

获取回调的参数详情

1、当 app 显示在前台的时候,会触发 MobPushReceiver 的 onNotifyMessageOpenedReceive 方法,MobPushNotifyMessage 参数则是回调的通知详情,可以根据回调参数进行处理;


2、当 app 进程杀掉的时候,点击通知后拉起应用的启动页面,会触发启动 Activity 的 OnCreate 或 OnNewIntent 方法,通过 getIntent 方法拿到回传的 Intent,可以拿到通知详情;


此方式可以配合方式一跳转具体页面做为中转页面使用,MobPush 提供了统一的方法来获取


//通过scheme跳转详情页面可选择此方式JSONArray var = new JSONArray();var =  MobPushUtils.parseSchemePluginPushIntent(getIntent());//跳转首页可选择此方式JSONArray var2 = new JSONArray();var2 = MobPushUtils.parseMainPluginPushIntent(getIntent());
复制代码


可参考官方 demo


用户头像

还未添加个人签名 2019-05-08 加入

还未添加个人简介

评论

发布
暂无评论
MobPush Android SDK API_MobTech袤博科技_InfoQ写作社区