From ba3dc566d781d2e987bd3ee9d272d178c8ebf0ec Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@S0ZHK00LKCA6OYY>
Date: 星期五, 30 十一月 2018 14:05:29 +0800
Subject: [PATCH] IOS推送字段过滤

---
 fanli/src/main/java/com/yeshi/fanli/util/factory/IOSPushFactory.java |   36 ++++++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/factory/IOSPushFactory.java b/fanli/src/main/java/com/yeshi/fanli/util/factory/IOSPushFactory.java
index 99ac5c5..13d5789 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/factory/IOSPushFactory.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/factory/IOSPushFactory.java
@@ -1,12 +1,35 @@
 package com.yeshi.fanli.util.factory;
 
 import com.yeshi.fanli.controller.admin.PushController;
+import com.yeshi.fanli.util.StringUtil;
 
 import net.sf.json.JSONObject;
 
 public class IOSPushFactory {
+
+	private static JSONObject filterPushContent(JSONObject json) {
+		if (json != null)
+			while (json.toString().getBytes().length > 256) {
+				// 棣栧厛鍓婂噺鍐呭锛岀劧鍚庡墛鍑忔爣棰�
+				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) && body.length() > 6) {
+						json.optJSONObject("aps").optJSONObject("alert").put("title",
+								title.substring(0, title.length() - 1));
+						continue;
+					}
+				} else {
+					json.optJSONObject("aps").optJSONObject("alert").put("body", body.substring(0, body.length() - 1));
+					continue;
+				}
+			}
+		return json;
+	}
+
 	/**
-	 * IOS鍟嗗搧鎺ㄩ��    杩斿洖JSON鐨勫瓧绗︿覆闀垮害灏忎簬绛変簬256
+	 * IOS鍟嗗搧鎺ㄩ�� 杩斿洖JSON鐨勫瓧绗︿覆闀垮害灏忎簬绛変簬256
 	 * 
 	 * @param auctionId
 	 *            娣樺疂鍟嗗搧ID
@@ -22,15 +45,16 @@
 		alert.put("sound", "default");
 		alert.put("url", "http://id=" + auctionId);
 		alert.put("type", PushController.GOODS);
+
 		JSONObject aps = new JSONObject();
 		aps.put("alert", alert);
 		JSONObject json = new JSONObject();
 		json.put("aps", aps);
-		return json;
+		return filterPushContent(json);
 	}
 
 	/**
-	 * IOS绔欏唴淇℃帹閫�    杩斿洖JSON鐨勫瓧绗︿覆闀垮害灏忎簬绛変簬256
+	 * IOS绔欏唴淇℃帹閫� 杩斿洖JSON鐨勫瓧绗︿覆闀垮害灏忎簬绛変簬256
 	 * 
 	 * @param title
 	 * @param body
@@ -47,11 +71,11 @@
 		aps.put("alert", alert);
 		JSONObject json = new JSONObject();
 		json.put("aps", aps);
-		return json;
+		return filterPushContent(json);
 	}
 
 	/**
-	 * IOS閾炬帴鎺ㄩ��    杩斿洖JSON鐨勫瓧绗︿覆闀垮害灏忎簬绛変簬256
+	 * IOS閾炬帴鎺ㄩ�� 杩斿洖JSON鐨勫瓧绗︿覆闀垮害灏忎簬绛変簬256
 	 * 
 	 * @param shortUrl
 	 *            鐭摼
@@ -72,7 +96,7 @@
 		aps.put("alert", alert);
 		JSONObject json = new JSONObject();
 		json.put("aps", aps);
-		return json;
+		return filterPushContent(json);
 	}
 
 }

--
Gitblit v1.8.0