友盟消息推送之java后台集成

一、功能描述

根据业务需求,对IOS APP定时推送消息,点击通知栏的推送内容,跳转到APP内指定界面。

二、准备工作

1. 参照友盟消息推送官方文档,获取 appkey 和 appMasterSecret:

官方文档链接:https://developer.umeng.com/docs/66632/detail/68343

我是在阅读此官方文档的基础上进行集成的,现针对文档上一些必要的干货和我踩过的坑和大家分享一下:

1). 必须获取 Appkey 和 App Master Secret,IOS和java后台可以用一套,我们是项目经理帮着申请的。

2). 关于“IP白名单”:不是必须设置,我在集成的时候没有管,都是默认状态。

3). Device Token:IOS小伙伴在用户登录的时候根据设备获取的,并发送给友盟,使用单播或者列播的时候才需要此字段,但这两种模式有一个bug,比如同一个设备,用两个不同的账号登录过app,两个账号对应的推送消息该设备都能接收到,不符合常理。所以、我开始和小伙伴用的这种方式,发现这个bug后果断放弃了。

4). Alias:根据别名的方式推送消息,每一个设备上接到的推送就是最后一个登录的账号应该收到的消息。我采用的是这一种。setAlias(alias, alias_type),也是IOS小伙伴在登录的时候注册到友盟的,比如我这边和IOS小伙伴约定好了,alias取的就是userId的值,alias_type为“push”,后面代码中有提到。

5). unicast、listcast、customizedcast等模式的选择:鉴于3)/4)两条的分析,我选择的是customizedcast。

2. 相关jar包及类的导入:

如下,是我是在官网Java SDK v1.5(2015-11-13)的基础上进行修改后的,仅供参考。

链接:https://pan.baidu.com/s/1_BUcSwcru01bC49apJdfxQ      提取码:tvvr
在这里插入图片描述

三、实现示例

1. PushHandler.java

package com.test.push;

import java.util.HashMap;
import java.util.Map;

public class PushHandler {
   
	private static PushClient client = new PushClient();
	// setBadge 推送角标数
	public static Map<String, Integer> badgeMap;
	static {
   
		badgeMap = new HashMap<String, Integer>();
	}

	public static Map<String, Integer> getbadgeMap() {
   
		return badgeMap;
	}

	public static void setbadgeMap(Map<String, Integer> badgeMap) {
   
		PushHandler.badgeMap = badgeMap;
	}

	/**
	 * 
	 * @param userId
	 * @return
	 */
    public static int getBadge(String userId)
    {
   
        //条数统计
        String badgeKey = userId;
        
        if(badgeMap.get(badgeKey) == null){
   
        	badgeMap.put(badgeKey, 0);
        }
        int badge = badgeMap.get(badgeKey);
        return badge;
    }
    
   /**
    * 
    * @param userId
    * @param badge
    * @return
    */
    public static int setBadge(String userId,int badge)
    {
   
        //条数统计
        String BadgeKey = userId;
        badge++;
        badgeMap.put(BadgeKey, badge)
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在uniapp中集成友盟消息推送,可以按照以下步骤进行操作: 1. 在友盟官网创建应用:首先,在友盟官网上创建一个应用并获取AppKey和AppSecret。确保应用类型选择为“推送”。 2. 安装插件:使用uniapp的插件市场搜索并安装友盟推送插件。你可以在`manifest.json`文件中添加以下代码: ```json "uni-app-plus": { "plugins": { "umeng-push": { "version": "1.0.0", "provider": "xxxxxxxx" // 这里填写你的友盟AppKey } } } ``` 3. 配置Android平台:对于Android平台,你需要在`manifest.json`文件中配置一些必要的信息。添加以下代码: ```json "umeng_push": { "appkey": "xxxxxxxx", // 这里填写你的友盟AppKey "channel": "umeng", // 渠道名称,可以自定义 "xiaomi_appid": "", // 小米推送AppId,可选 "xiaomi_appkey": "" // 小米推送AppKey,可选 } ``` 4. 配置iOS平台:对于iOS平台,你需要在`Info.plist`文件中添加以下代码: ```xml <key>UmengPushAppkey</key> <string>xxxxxxxx</string> <!-- 这里填写你的友盟AppKey --> <key>UMessage_StartWithAppkeyEnabled</key> <false/> ``` 5. 调用推送API:在需要使用推送的页面或组件中,使用uniapp的API进行消息推送。你可以使用`uni.request`方法向友盟推送服务器发送消息,示例如下: ```javascript uni.request({ url: 'https://msg.umeng.com/api/send', method: 'POST', header: { 'Content-Type': 'application/json', 'Authorization': 'Basic ' + base64(appKey + ':' + appMasterSecret) }, data: { "appkey": "xxxxxxxx", // 这里填写你的友盟AppKey "timestamp": Date.now(), "policy": { "expire_time": "2022-01-01 00:00:00" }, "payload": { "body": { "custom": { "key1": "value1", "key2": "value2" } }, "display_type": "message", "body": { "ticker": "通知栏提示文字", "title": "通知标题", "text": "通知内容", "after_open": "go_app" } } }, success: function(res) { console.log(res.data); } }); ``` 请确保替换示例代码中的`xxxxxxxx`为你自己的友盟AppKey。另外,你还需要根据具体需求调整消息内容、推送策略等。 以上是集成友盟消息推送的基本步骤,具体操作还需要根据你的实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值