| | |
| | | package com.yeshi.fanli.util.factory;
|
| | |
|
| | | import java.io.UnsupportedEncodingException;
|
| | |
|
| | | import com.yeshi.fanli.dto.push.PushTypeEnum;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | | public class IOSPushFactory {
|
| | |
|
| | | private static JSONObject filterPushContent(JSONObject json) {
|
| | | if (json != null)
|
| | | try {
|
| | | boolean ischange = false;
|
| | | while (json.toString().getBytes("UTF-8").length > 253) {
|
| | | // 首先削减内容,然后削减标题
|
| | | String title = json.optJSONObject("aps").optJSONObject("alert").optString("title");
|
| | | String body = json.optJSONObject("aps").optJSONObject("alert").optString("body");
|
| | | if (StringUtil.isNullOrEmpty(body) || body.length() < 4) {
|
| | | // 削减标题
|
| | | if (!StringUtil.isNullOrEmpty(title) && title.length() > 6) {
|
| | | json.optJSONObject("aps").optJSONObject("alert").put("title",
|
| | | title.substring(0, title.length() - 1));
|
| | | continue;
|
| | | }
|
| | | } else {
|
| | | ischange = true;
|
| | | json.optJSONObject("aps").optJSONObject("alert").put("body",
|
| | | body.substring(0, body.length() - 1));
|
| | | continue;
|
| | | }
|
| | | }
|
| | |
|
| | | if (ischange) {
|
| | | String body = json.optJSONObject("aps").optJSONObject("alert").optString("body");
|
| | | json.optJSONObject("aps").optJSONObject("alert").put("body", body + "...");
|
| | | }
|
| | |
|
| | | } catch (UnsupportedEncodingException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | return json;
|
| | | }
|
| | |
|
| | | /**
|
| | | * IOS商品推送 返回JSON的字符串长度小于等于256
|
| | | * |
| | | * @param auctionId
|
| | | * 淘宝商品ID
|
| | | * @param title
|
| | | * @param body
|
| | | * @return
|
| | | */
|
| | | public static JSONObject createGoodsPush(Long auctionId, String title, String body) {
|
| | | JSONObject alert = new JSONObject();
|
| | | alert.put("title", title);
|
| | | alert.put("body", body);
|
| | | alert.put("badge", "1");
|
| | | alert.put("sound", "default");
|
| | | alert.put("url", "http://id=" + auctionId);
|
| | | alert.put("type",PushTypeEnum.goodsdetail.getCode());
|
| | |
|
| | | JSONObject aps = new JSONObject();
|
| | | aps.put("alert", alert);
|
| | | //aps.put("badge", 1);
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("aps", aps);
|
| | | return filterPushContent(json);
|
| | | }
|
| | |
|
| | | /**
|
| | | * IOS站内信推送 返回JSON的字符串长度小于等于256
|
| | | * |
| | | * @param title
|
| | | * @param body
|
| | | * @return
|
| | | */
|
| | | public static JSONObject createZNXPush(String title, String body) {
|
| | | JSONObject alert = new JSONObject();
|
| | | alert.put("title", title);
|
| | | alert.put("body", body);
|
| | | alert.put("badge", "1");
|
| | | alert.put("sound", "default");
|
| | | alert.put("type", PushTypeEnum.ZNX.getCode());
|
| | | JSONObject aps = new JSONObject();
|
| | | aps.put("alert", alert);
|
| | | //aps.put("badge", 1);
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("aps", aps);
|
| | | return filterPushContent(json);
|
| | | }
|
| | |
|
| | | /**
|
| | | * IOS链接推送 返回JSON的字符串长度小于等于256
|
| | | * |
| | | * @param shortUrl
|
| | | * 短链
|
| | | * @param title
|
| | | * @param body
|
| | | * @return
|
| | | */
|
| | | public static JSONObject createURLPush(String shortUrl, String title, String body) {
|
| | | JSONObject alert = new JSONObject();
|
| | | alert.put("title", title);
|
| | | alert.put("body", body);
|
| | | alert.put("badge", "1");
|
| | | alert.put("sound", "default");
|
| | | alert.put("type",PushTypeEnum.url.getCode());
|
| | | alert.put("url", shortUrl);
|
| | |
|
| | | JSONObject aps = new JSONObject();
|
| | | aps.put("alert", alert);
|
| | | //aps.put("badge", 1);
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("aps", aps);
|
| | | return filterPushContent(json);
|
| | | }
|
| | |
|
| | | /**
|
| | | * WEEX页面推送
|
| | | * |
| | | * @param shortUrl
|
| | | * @param title
|
| | | * @param body
|
| | | * @return
|
| | | */
|
| | | public static JSONObject createWEEXPush(String shortUrl, String title, String body) {
|
| | | JSONObject alert = new JSONObject();
|
| | | alert.put("title", title);
|
| | | alert.put("body", body);
|
| | | alert.put("badge", "1");
|
| | | alert.put("sound", "default");
|
| | | alert.put("type", PushTypeEnum.weex.getCode());
|
| | | alert.put("url", shortUrl);
|
| | |
|
| | | JSONObject aps = new JSONObject();
|
| | | aps.put("alert", alert);
|
| | | //aps.put("badge", 1);
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("aps", aps);
|
| | | return filterPushContent(json);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 百川网页推送
|
| | | * |
| | | * @param shortUrl
|
| | | * @param title
|
| | | * @param body
|
| | | * @return
|
| | | */
|
| | | public static JSONObject createBaiChuanPush(String shortUrl, String title, String body) {
|
| | | JSONObject alert = new JSONObject();
|
| | | alert.put("title", title);
|
| | | alert.put("body", body);
|
| | | alert.put("badge", "1");
|
| | | alert.put("sound", "default");
|
| | | alert.put("type", PushTypeEnum.baichuan.getCode());
|
| | | alert.put("url", shortUrl);
|
| | |
|
| | | JSONObject aps = new JSONObject();
|
| | | aps.put("alert", alert);
|
| | | //aps.put("badge", 1);
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("aps", aps);
|
| | | return filterPushContent(json);
|
| | | }
|
| | | |
| | | /**
|
| | | * 福利中心推送
|
| | | * @param title
|
| | | * @param body
|
| | | * @return
|
| | | */
|
| | | public static JSONObject createWelfarePush( String title, String body) {
|
| | | JSONObject alert = new JSONObject();
|
| | | alert.put("title", title);
|
| | | alert.put("body", body);
|
| | | alert.put("badge", "1");
|
| | | alert.put("sound", "default");
|
| | | alert.put("type", PushTypeEnum.welfare.getCode());
|
| | |
|
| | | JSONObject aps = new JSONObject();
|
| | | aps.put("alert", alert);
|
| | | //aps.put("badge", 1);
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("aps", aps);
|
| | | return filterPushContent(json);
|
| | | }
|
| | |
|
| | | |
| | | /**
|
| | | * 用户签到
|
| | | * @param title
|
| | | * @param body
|
| | | * @return
|
| | | */
|
| | | public static JSONObject createUserSignInPush( String title, String body) {
|
| | | JSONObject alert = new JSONObject();
|
| | | alert.put("title", title);
|
| | | alert.put("body", body);
|
| | | alert.put("badge", "1");
|
| | | alert.put("sound", "default");
|
| | | alert.put("type", PushTypeEnum.signin.getCode());
|
| | |
|
| | | JSONObject aps = new JSONObject();
|
| | | aps.put("alert", alert);
|
| | | //aps.put("badge", 1);
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("aps", aps);
|
| | | return filterPushContent(json);
|
| | | }
|
| | | |
| | | }
|
| | | package com.yeshi.fanli.util.factory; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | |
| | | import com.yeshi.fanli.dto.push.PushTypeEnum; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | |
| | | import net.sf.json.JSONObject; |
| | | |
| | | public class IOSPushFactory { |
| | | |
| | | private static JSONObject filterPushContent(JSONObject json) { |
| | | if (json != null) |
| | | try { |
| | | boolean ischange = false; |
| | | while (json.toString().getBytes("UTF-8").length > 253) { |
| | | // 首先削减内容,然后削减标题 |
| | | String title = json.optJSONObject("aps").optJSONObject("alert").optString("title"); |
| | | String body = json.optJSONObject("aps").optJSONObject("alert").optString("body"); |
| | | if (StringUtil.isNullOrEmpty(body) || body.length() < 4) { |
| | | // 削减标题 |
| | | if (!StringUtil.isNullOrEmpty(title) && title.length() > 6) { |
| | | json.optJSONObject("aps").optJSONObject("alert").put("title", |
| | | title.substring(0, title.length() - 1)); |
| | | continue; |
| | | } |
| | | } else { |
| | | ischange = true; |
| | | json.optJSONObject("aps").optJSONObject("alert").put("body", |
| | | body.substring(0, body.length() - 1)); |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | if (ischange) { |
| | | String body = json.optJSONObject("aps").optJSONObject("alert").optString("body"); |
| | | json.optJSONObject("aps").optJSONObject("alert").put("body", body + "..."); |
| | | } |
| | | |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return json; |
| | | } |
| | | |
| | | /** |
| | | * IOS商品推送 返回JSON的字符串长度小于等于256 |
| | | * |
| | | * @param auctionId |
| | | * 淘宝商品ID |
| | | * @param title |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static JSONObject createGoodsPush(String auctionId, String title, String body) { |
| | | JSONObject alert = new JSONObject(); |
| | | alert.put("title", title); |
| | | alert.put("body", body); |
| | | alert.put("badge", "1"); |
| | | alert.put("sound", "default"); |
| | | alert.put("url", "http://id=" + auctionId); |
| | | alert.put("type",PushTypeEnum.goodsdetail.getCode()); |
| | | |
| | | JSONObject aps = new JSONObject(); |
| | | aps.put("alert", alert); |
| | | //aps.put("badge", 1); |
| | | JSONObject json = new JSONObject(); |
| | | json.put("aps", aps); |
| | | return filterPushContent(json); |
| | | } |
| | | |
| | | /** |
| | | * IOS站内信推送 返回JSON的字符串长度小于等于256 |
| | | * |
| | | * @param title |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static JSONObject createZNXPush(String title, String body) { |
| | | JSONObject alert = new JSONObject(); |
| | | alert.put("title", title); |
| | | alert.put("body", body); |
| | | alert.put("badge", "1"); |
| | | alert.put("sound", "default"); |
| | | alert.put("type", PushTypeEnum.ZNX.getCode()); |
| | | JSONObject aps = new JSONObject(); |
| | | aps.put("alert", alert); |
| | | //aps.put("badge", 1); |
| | | JSONObject json = new JSONObject(); |
| | | json.put("aps", aps); |
| | | return filterPushContent(json); |
| | | } |
| | | |
| | | /** |
| | | * IOS链接推送 返回JSON的字符串长度小于等于256 |
| | | * |
| | | * @param shortUrl |
| | | * 短链 |
| | | * @param title |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static JSONObject createURLPush(String shortUrl, String title, String body) { |
| | | JSONObject alert = new JSONObject(); |
| | | alert.put("title", title); |
| | | alert.put("body", body); |
| | | alert.put("badge", "1"); |
| | | alert.put("sound", "default"); |
| | | alert.put("type",PushTypeEnum.url.getCode()); |
| | | alert.put("url", shortUrl); |
| | | |
| | | JSONObject aps = new JSONObject(); |
| | | aps.put("alert", alert); |
| | | //aps.put("badge", 1); |
| | | JSONObject json = new JSONObject(); |
| | | json.put("aps", aps); |
| | | return filterPushContent(json); |
| | | } |
| | | |
| | | /** |
| | | * WEEX页面推送 |
| | | * |
| | | * @param shortUrl |
| | | * @param title |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static JSONObject createWEEXPush(String shortUrl, String title, String body) { |
| | | JSONObject alert = new JSONObject(); |
| | | alert.put("title", title); |
| | | alert.put("body", body); |
| | | alert.put("badge", "1"); |
| | | alert.put("sound", "default"); |
| | | alert.put("type", PushTypeEnum.weex.getCode()); |
| | | alert.put("url", shortUrl); |
| | | |
| | | JSONObject aps = new JSONObject(); |
| | | aps.put("alert", alert); |
| | | //aps.put("badge", 1); |
| | | JSONObject json = new JSONObject(); |
| | | json.put("aps", aps); |
| | | return filterPushContent(json); |
| | | } |
| | | |
| | | /** |
| | | * 百川网页推送 |
| | | * |
| | | * @param shortUrl |
| | | * @param title |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static JSONObject createBaiChuanPush(String shortUrl, String title, String body) { |
| | | JSONObject alert = new JSONObject(); |
| | | alert.put("title", title); |
| | | alert.put("body", body); |
| | | alert.put("badge", "1"); |
| | | alert.put("sound", "default"); |
| | | alert.put("type", PushTypeEnum.baichuan.getCode()); |
| | | alert.put("url", shortUrl); |
| | | |
| | | JSONObject aps = new JSONObject(); |
| | | aps.put("alert", alert); |
| | | //aps.put("badge", 1); |
| | | JSONObject json = new JSONObject(); |
| | | json.put("aps", aps); |
| | | return filterPushContent(json); |
| | | } |
| | | |
| | | /** |
| | | * 福利中心推送 |
| | | * @param title |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static JSONObject createWelfarePush( String title, String body) { |
| | | JSONObject alert = new JSONObject(); |
| | | alert.put("title", title); |
| | | alert.put("body", body); |
| | | alert.put("badge", "1"); |
| | | alert.put("sound", "default"); |
| | | alert.put("type", PushTypeEnum.welfare.getCode()); |
| | | |
| | | JSONObject aps = new JSONObject(); |
| | | aps.put("alert", alert); |
| | | //aps.put("badge", 1); |
| | | JSONObject json = new JSONObject(); |
| | | json.put("aps", aps); |
| | | return filterPushContent(json); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 用户签到 |
| | | * @param title |
| | | * @param body |
| | | * @return |
| | | */ |
| | | public static JSONObject createUserSignInPush( String title, String body) { |
| | | JSONObject alert = new JSONObject(); |
| | | alert.put("title", title); |
| | | alert.put("body", body); |
| | | alert.put("badge", "1"); |
| | | alert.put("sound", "default"); |
| | | alert.put("type", PushTypeEnum.signin.getCode()); |
| | | |
| | | JSONObject aps = new JSONObject(); |
| | | aps.put("alert", alert); |
| | | //aps.put("badge", 1); |
| | | JSONObject json = new JSONObject(); |
| | | json.put("aps", aps); |
| | | return filterPushContent(json); |
| | | } |
| | | |
| | | } |