Administrator
2018-11-30 ba3dc566d781d2e987bd3ee9d272d178c8ebf0ec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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
     * 
     * @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", PushController.GOODS);
 
        JSONObject aps = new JSONObject();
        aps.put("alert", alert);
        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", PushController.ZNX);
        JSONObject aps = new JSONObject();
        aps.put("alert", alert);
        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", PushController.URL);
        alert.put("url", shortUrl);
 
        JSONObject aps = new JSONObject();
        aps.put("alert", alert);
        JSONObject json = new JSONObject();
        json.put("aps", aps);
        return filterPushContent(json);
    }
 
}