From e7f2a42b73204091a009457a8152ee783a64fbd5 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@Admin>
Date: 星期五, 30 十一月 2018 18:18:43 +0800
Subject: [PATCH] 字节加入utf8验证

---
 fanli/src/main/java/com/yeshi/fanli/util/factory/IOSPushFactory.java |   38 ++++++++++++++++++++++++++------------
 1 files changed, 26 insertions(+), 12 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 6697e10..4e137e7 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,5 +1,7 @@
 package com.yeshi.fanli.util.factory;
 
+import java.io.UnsupportedEncodingException;
+
 import com.yeshi.fanli.controller.admin.PushController;
 import com.yeshi.fanli.util.StringUtil;
 
@@ -9,21 +11,33 @@
 
 	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) && title.length() > 6) {
-						json.optJSONObject("aps").optJSONObject("alert").put("title",
-								title.substring(0, title.length() - 1));
+			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;
 					}
-				} else {
-					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;
 	}

--
Gitblit v1.8.0