From 752e00503f672ddfe2066afb6c235721a3a912b5 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期二, 19 十一月 2024 10:25:55 +0800
Subject: [PATCH] 2024.11.19 各项修正
---
src/main/kotlin/cn/flightfeather/supervision/push/PushService.kt | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 103 insertions(+), 0 deletions(-)
diff --git a/src/main/kotlin/cn/flightfeather/supervision/push/PushService.kt b/src/main/kotlin/cn/flightfeather/supervision/push/PushService.kt
new file mode 100644
index 0000000..c9014b7
--- /dev/null
+++ b/src/main/kotlin/cn/flightfeather/supervision/push/PushService.kt
@@ -0,0 +1,103 @@
+package cn.flightfeather.supervision.push
+
+import com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getRequestId
+import com.aliyuncs.push.model.v20160801.PushResponse
+import com.aliyuncs.utils.ParameterHelper
+import com.aliyuncs.push.model.v20160801.PushRequest
+import com.aliyuncs.DefaultAcsClient
+import com.aliyuncs.profile.DefaultProfile
+import com.aliyuncs.profile.IClientProfile
+import java.util.*
+
+
+/**
+ * 绉诲姩鎺ㄩ�佹湇鍔�
+ * @author riku
+ * Date: 2019/12/26
+ */
+class PushService {
+
+ private val pushRequest: PushRequest
+ private val client: DefaultAcsClient
+
+ companion object {
+ const val accessKeyId = "LTAI4FvmhG97saKL33tDqUV8"
+ const val accessKeySecret = "3PyluVDS97GTGVmm1p3s6vbLkyqZMf"
+ const val appKey = 28232249L
+ }
+
+ init {
+ val profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret)
+ client = DefaultAcsClient(profile)
+ pushRequest = PushRequest()
+ pushRequest.appKey = appKey
+ pushRequest.pushType = "NOTICE" // 娑堟伅绫诲瀷 MESSAGE NOTICE
+ pushRequest.deviceType = "ANDROID" // 璁惧绫诲瀷 ANDROID iOS ALL.
+ setAndroid()
+ // 鎺ㄩ�佹帶鍒�
+// val pushDate = Date(System.currentTimeMillis()) // 30绉掍箣闂寸殑鏃堕棿鐐�, 涔熷彲浠ヨ缃垚浣犳寚瀹氬浐瀹氭椂闂�
+// val pushTime = ParameterHelper.getISO8601Time(pushDate)
+// pushRequest.pushTime = pushTime // 寤跺悗鎺ㄩ�併�傚彲閫夛紝濡傛灉涓嶈缃〃绀虹珛鍗虫帹閫�
+ val expireTime = ParameterHelper.getISO8601Time(Date(System.currentTimeMillis() + 12 * 3600 * 1000)) // 12灏忔椂鍚庢秷鎭け鏁�, 涓嶄細鍐嶅彂閫�
+ pushRequest.expireTime = expireTime
+ pushRequest.storeOffline = true // 绂荤嚎娑堟伅鏄惁淇濆瓨,鑻ヤ繚瀛�, 鍦ㄦ帹閫佹椂鍊欙紝鐢ㄦ埛鍗充娇涓嶅湪绾匡紝涓嬩竴娆′笂绾垮垯浼氭敹鍒�
+ }
+
+ fun pushByAccount(accountList: List<String>, all: Boolean = false) {
+ // 鎺ㄩ�佺洰鏍�
+ val accounts = StringBuilder()
+ accountList.forEach {
+ if (accounts.isNotEmpty()) {
+ accounts.append(",")
+ }
+ accounts.append(it)
+ }
+ if (all) {
+ pushRequest.target = "ALL" //鎺ㄩ�佺洰鏍�: DEVICE:鎸夎澶囨帹閫� ALIAS : 鎸夊埆鍚嶆帹閫� ACCOUNT:鎸夊笎鍙锋帹閫� TAG:鎸夋爣绛炬帹閫�; ALL: 骞挎挱鎺ㄩ��
+ pushRequest.targetValue = "ALL" //鏍规嵁Target鏉ヨ瀹氾紝濡俆arget=DEVICE, 鍒欏搴旂殑鍊间负 璁惧id1,璁惧id2. 澶氫釜鍊间娇鐢ㄩ�楀彿鍒嗛殧.(甯愬彿涓庤澶囨湁涓�娆℃渶澶�100涓殑闄愬埗)
+ } else {
+ pushRequest.target = "ACCOUNT" //鎺ㄩ�佺洰鏍�: DEVICE:鎸夎澶囨帹閫� ALIAS : 鎸夊埆鍚嶆帹閫� ACCOUNT:鎸夊笎鍙锋帹閫� TAG:鎸夋爣绛炬帹閫�; ALL: 骞挎挱鎺ㄩ��
+ pushRequest.targetValue = accounts.toString() //鏍规嵁Target鏉ヨ瀹氾紝濡俆arget=DEVICE, 鍒欏搴旂殑鍊间负 璁惧id1,璁惧id2. 澶氫釜鍊间娇鐢ㄩ�楀彿鍒嗛殧.(甯愬彿涓庤澶囨湁涓�娆℃渶澶�100涓殑闄愬埗)
+ }
+ // pushRequest.setTarget("ALL"); //鎺ㄩ�佺洰鏍�: DEVICE:鎺ㄩ�佺粰璁惧; ACCOUNT:鎺ㄩ�佺粰鎸囧畾甯愬彿,TAG:鎺ㄩ�佺粰鑷畾涔夋爣绛�; ALL: 鎺ㄩ�佺粰鍏ㄩ儴
+// pushRequest.setTargetValue("ALL"); //鏍规嵁Target鏉ヨ瀹氾紝濡俆arget=DEVICE, 鍒欏搴旂殑鍊间负 璁惧id1,璁惧id2. 澶氫釜鍊间娇鐢ㄩ�楀彿鍒嗛殧.(甯愬彿涓庤澶囨湁涓�娆℃渶澶�100涓殑闄愬埗)
+ }
+
+ fun push(title: String, body: String) {
+ // 鎺ㄩ�侀厤缃�
+ pushRequest.title = title // 娑堟伅鐨勬爣棰�
+ pushRequest.body = body // 娑堟伅鐨勫唴瀹�
+ val pushResponse = client.getAcsResponse(pushRequest, true, 3)
+ System.out.printf("RequestId: %s, MessageID: %s\n",
+ pushResponse.requestId, pushResponse.messageId)
+ }
+
+ private fun setIOS() {
+ // 鎺ㄩ�侀厤缃�: iOS
+ pushRequest.iosBadge = 5 // iOS搴旂敤鍥炬爣鍙充笂瑙掕鏍�
+ pushRequest.iosMusic = "default" // iOS閫氱煡澹伴煶
+ pushRequest.iosSubtitle = "iOS10 subtitle"//iOS10閫氱煡鍓爣棰樼殑鍐呭
+ pushRequest.iosNotificationCategory = "iOS10 Notification Category"//鎸囧畾iOS10閫氱煡Category
+ pushRequest.iosMutableContent = true//鏄惁鍏佽鎵╁睍iOS閫氱煡鍐呭
+ pushRequest.iosApnsEnv = "DEV"//iOS鐨勯�氱煡鏄�氳繃APNs涓績鏉ュ彂閫佺殑锛岄渶瑕佸~鍐欏搴旂殑鐜淇℃伅銆�"DEV" : 琛ㄧず寮�鍙戠幆澧� "PRODUCT" : 琛ㄧず鐢熶骇鐜
+ pushRequest.iosRemind = true // 娑堟伅鎺ㄩ�佹椂璁惧涓嶅湪绾匡紙鏃笌绉诲姩鎺ㄩ�佺殑鏈嶅姟绔殑闀胯繛鎺ラ�氶亾涓嶉�氾級锛屽垯杩欐潯鎺ㄩ�佷細鍋氫负閫氱煡锛岄�氳繃鑻规灉鐨凙PNs閫氶亾閫佽揪涓�娆°�傛敞鎰忥細绂荤嚎娑堟伅杞�氱煡浠呴�傜敤浜庣敓浜х幆澧�
+ pushRequest.iosRemindBody = "iOSRemindBody"//iOS娑堟伅杞�氱煡鏃朵娇鐢ㄧ殑iOS閫氱煡鍐呭锛屼粎褰搃OSApnsEnv=PRODUCT && iOSRemind涓簍rue鏃舵湁鏁�
+ pushRequest.iosExtParameters = "{\"_ENV_\":\"DEV\",\"k2\":\"v2\"}" //閫氱煡鐨勬墿灞曞睘鎬�(娉ㄦ剰 : 璇ュ弬鏁拌浠son map鐨勬牸寮忎紶鍏�,鍚﹀垯浼氳В鏋愬嚭閿�)
+ }
+
+ private fun setAndroid() {
+ // 鎺ㄩ�侀厤缃�: Android
+ pushRequest.androidNotifyType = "BOTH"//閫氱煡鐨勬彁閱掓柟寮� "VIBRATE" : 闇囧姩 "SOUND" : 澹伴煶 "BOTH" : 澹伴煶鍜岄渿鍔� NONE : 闈欓煶
+ pushRequest.androidNotificationChannel = "1"
+// pushRequest.androidNotificationBarType = 1//閫氱煡鏍忚嚜瀹氫箟鏍峰紡0-100
+// pushRequest.androidNotificationBarPriority = 1//閫氱煡鏍忚嚜瀹氫箟鏍峰紡0-100
+ pushRequest.androidOpenType = "APPLICATION" //鐐瑰嚮閫氱煡鍚庡姩浣� "APPLICATION" : 鎵撳紑搴旂敤 "ACTIVITY" : 鎵撳紑AndroidActivity "URL" : 鎵撳紑URL "NONE" : 鏃犺烦杞�
+// pushRequest.androidOpenUrl = "http://www.aliyun.com" //Android鏀跺埌鎺ㄩ�佸悗鎵撳紑瀵瑰簲鐨剈rl,浠呭綋AndroidOpenType="URL"鏈夋晥
+// pushRequest.androidActivity = "com.alibaba.push2.demo.XiaoMiPushActivity" // 璁惧畾閫氱煡鎵撳紑鐨刟ctivity锛屼粎褰揂ndroidOpenType="Activity"鏈夋晥
+ pushRequest.androidMusic = "default" // Android閫氱煡闊充箰
+// pushRequest.androidPopupActivity = "com.ali.demo.PopupActivity"//璁剧疆璇ュ弬鏁板悗鍚姩杈呭姪寮圭獥鍔熻兘, 姝ゅ鎸囧畾閫氱煡鐐瑰嚮鍚庤烦杞殑Activity锛堣緟鍔╁脊绐楃殑鍓嶆彁鏉′欢锛�1. 闆嗘垚绗笁鏂硅緟鍔╅�氶亾锛�2. StoreOffline鍙傛暟璁句负true锛�
+// pushRequest.androidPopupTitle = "Popup Title"
+// pushRequest.androidPopupBody = "Popup Body"
+// pushRequest.androidExtParameters = "{\"k1\":\"android\",\"k2\":\"v2\"}" //璁惧畾閫氱煡鐨勬墿灞曞睘鎬с��(娉ㄦ剰 : 璇ュ弬鏁拌浠� json map 鐨勬牸寮忎紶鍏�,鍚﹀垯浼氳В鏋愬嚭閿�)
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3