android 호출 극광 푸 시 SDK 설정 태그 와 Alias 도구 클래스 - 자바 웹 호출 극광 푸 시 웹 SDK 전송 푸 시 메시지 도구 클래스
http://docs.jiguang.cn/jpush/client/Android/android_guide/
다음은 호출 에 관 한 도구 류 입 니 다.
1. Android jpush Utils: 극광 문서 api 3.0.7 을 기반 으로 통합 되 었 습 니 다.
원본 코드:
**
* :JPushutils.class
* :
* Created by: on 2017/8/24 0024.
* --------------------------------------
* :
* :
* Modify by:
*/
public class JPushutils extends JPushMessageReceiver {
public static final String PROJECTNAME = "PB";//
/**
* app
* 。 , ,
* , 。 。
* @param alias
*/
public static void setAlias(Context conn, String alias) {
setJpushAlias(conn,0x1,Validate.isNullTodefault(alias,PROJECTNAME));
}
/**
* app
*/
public static void deleteAlias(Context conn) {
deleteJpushAlias(conn,0x2);
}
/**
* app
*/
public static void getAlias(Context conn ) {
getJpushAlias(conn,0x3);
}
/**
*
* 。 tag , 。
*/
public static void setTags(Context conn,final String[] Tags) {
setJpushTags(conn,0x4,Tags);
}
/**
*
*/
public static void addTags(Context conn,final String[] Tags) {
addJpushTags(conn,0x5,Tags);
}
/**
*
*/
public static void deleteTags(Context conn,final String[] Tags) {
deleteJpushTags(conn,0x6,Tags);
}
/**
*
*/
public static void cleanTags(Context conn) {
cleanJpushTags(conn,0x7);
}
/**
*
*/
public static void getAllTags( Context conn) {
getAllJpushTags(conn,0x8);
}
private static void setJpushAlias( Context conn,int sequence,final String alias) {
JPushInterface.setAlias(conn,sequence,alias);
}
private static void deleteJpushAlias(Context conn,int sequence) {
JPushInterface.deleteAlias(conn, sequence);
}
private static void getJpushAlias(Context conn,int sequence) {
JPushInterface.getAlias(conn,sequence);
}
//
private static void setJpushTags(Context conn,int sequence,final String[] Tags){
Set set = new HashSet<>();
for (int i = 0; i < Tags.length; i++) {
set.add(Tags[i]);
}
JPushInterface.setTags(conn,sequence,set);
}
private static void addJpushTags(Context conn,int sequence,final String[] Tags){
Set set = new HashSet<>();
for (int i = 0; i < Tags.length; i++) {
set.add(Tags[i]);
}
JPushInterface.addTags(conn,sequence,set);
}
private static void deleteJpushTags(Context conn,int sequence,final String[] Tags){
Set set = new HashSet<>();
for (int i = 0; i < Tags.length; i++) {
set.add(Tags[i]);
}
JPushInterface.deleteTags(conn,sequence,set);
}
private static void cleanJpushTags(Context conn,int sequence){
JPushInterface.cleanTags(conn,sequence);
}
private static void getAllJpushTags(Context conn,int sequence){
JPushInterface.getAllTags(conn,sequence);
}
@Override
public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
switch (jPushMessage.getSequence()){
case 0x1:
if(jPushMessage.getErrorCode()==0)
KL.d(" Alias ");
else
KL.d(" Alias ");
break;
case 0x2:
if(jPushMessage.getErrorCode()==0)
KL.d(" Alias ");
else
KL.d(" Alias ");
break;
case 0x3:
if(jPushMessage.getErrorCode()==0)
KL.d("Alias :"+jPushMessage.getAlias());
else
KL.d(" Alias ");
break;
}
super.onAliasOperatorResult(context, jPushMessage);
}
@Override
public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
switch (jPushMessage.getSequence()){
case 0x4:
if(jPushMessage.getErrorCode()==0)
KL.d(" Tag ");
else
KL.d(" Tag ");
break;
case 0x5:
if(jPushMessage.getErrorCode()==0)
KL.d(" Tag ");
else
KL.d(" Tag ");
break;
case 0x6:
if(jPushMessage.getErrorCode()==0)
KL.d(" Tag ");
else
KL.d(" Tag ");
break;
case 0x7:
if(jPushMessage.getErrorCode()==0)
KL.d(" Tag ");
else
KL.d(" Tag ");
break;
case 0x8:
if(jPushMessage.getErrorCode()==0)
KL.d(" Tag ,Tags:"+jPushMessage.getTags().toString());
else
KL.d(" Tag ");
break;
}
super.onTagOperatorResult(context, jPushMessage);
}
주: 도구 류 자체 가 극광 푸 시 에서 계승 한 라디오 수신 기 이기 때문에 태그 와 Alias 작업 이 성공 적 으로 이 루어 졌 는 지 에 대한 메 시 지 를 되 돌려 주 는 기능 이 있 습 니 다.그래서 mainfests 파일 에 라디오 수신 을 등록 해 야 합 니 다.
android:name=".util.JPushutils"
android:enabled="true"
android:exported="false">
android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
android:name="com.house" />
2.java Web :jPushUtils
/**
*
* author:
* controller :
* :
* JPush.getInstance().sendPush(String alert);
* , , 。 : ,
*
* JPush.getInstance().sendPush(String userID, String alert, String mklx);
* , , 。 : : , userID, , 。 ,
*
* JPush.getInstance().sendPush(String userID, String json)
* : , , , 。 : : , userID,json 。
* json : {"success":"true","items":[{"mklx":"1","dspsl":"3"},{"mklx":"2","dspsl":"3"}]}
*
* @ by 2017 8 10
*/
public class JPush {
protected static final Logger LOG = LoggerFactory.getLogger(JPush.class);
private static JPush jpush;
public static JPush getInstance() {
// if (jpush == null)
return new JPush();
// return jpush;
}
/**
*
*
* @throws APIRequestException
*/
public void sendPush(String alert) {
JPushClient jpushClient = new JPushClient(Params.masterSecret, Params.appKey, null, ClientConfig.getInstance());
//
PushPayload payload = buildPushObject_all_all_alert(alert);
try {
System.out.println(payload.toString());
PushResult result = jpushClient.sendPush(payload);
System.out.println(result + "................................");
LOG.info("Got result - " + result);
} catch (APIConnectionException e) {
LOG.error("Connection error. Should retry later. ", e);
} catch (APIRequestException e) {
LOG.error("Error response from JPush server. Should review and fix it. ", e);
LOG.error(" , : SDK 。 , app, , ");
LOG.info("HTTP Status: " + e.getStatus());
LOG.info("Error Code: " + e.getErrorCode());
LOG.info("Error Message: " + e.getErrorMessage());
LOG.info("Msg ID: " + e.getMsgId());
}
}
/**
*
* @param tags
*
* @param alert
*
* @param mklx
*
*/
public void sendPushByTagsone(String tags,String alert,String mklx) {
JPushClient jpushClient = new JPushClient(Params.masterSecret, Params.appKey, null, ClientConfig.getInstance());
//
PushPayload payload = buildPushObject_all_tags_alert(tags,alert,mklx);
try {
System.out.println(payload.toString());
PushResult result = jpushClient.sendPush(payload);
System.out.println(result + "................................");
if(200==result.getResponseCode())
System.out.println(" ");
else
System.out.println(" ");
LOG.info("Got result - " + result);
} catch (APIConnectionException e) {
LOG.error("Connection error. Should retry later. ", e);
} catch (APIRequestException e) {
LOG.error("Error response from JPush server. Should review and fix it. ", e);
LOG.error(" , : SDK 。 , app, , ");
LOG.info("HTTP Status: " + e.getStatus());
LOG.info("Error Code: " + e.getErrorCode());
LOG.info("Error Message: " + e.getErrorMessage());
LOG.info("Msg ID: " + e.getMsgId());
}
}
/**
* : android_ios, , ALERT。 mklx——" "
*
* @return
*/
private PushPayload buildPushObject_all_tags_alert(String tag,String alert, String mklx) {
return PushPayload.newBuilder().setPlatform(Platform.android_ios())// :android_ios
.setAudience(Audience.tag(tag))// , ,
.setNotification(Notification.newBuilder().setAlert(alert)
.addPlatformNotification(AndroidNotification.newBuilder()
// .setTitle(TITLE)//android , app
.addExtra("mklx", mklx).build())
.addPlatformNotification(IosNotification.newBuilder()
// .setBadge(5)//ios , N
.addExtra("mklx", mklx).build())
.build())
.build();
}
/**
*
*
* @param userID
* ID
* @param alert
*
* @param mklx
*
* @throws APIRequestException
*/
public void sendPush(String userID, String alert, String mklx) {
JPushClient jpushClient = new JPushClient(Params.masterSecret, Params.appKey, null, ClientConfig.getInstance());
//
PushPayload payload = buildPushObject_all_alias_alert(userID, alert, mklx);
try {
System.out.println(payload.toString());
PushResult result = jpushClient.sendPush(payload);
System.out.println(result + "................................");
LOG.info("Got result - " + result);
} catch (APIConnectionException e) {
LOG.error("Connection error. Should retry later. ", e);
} catch (APIRequestException e) {
LOG.error("Error response from JPush server. Should review and fix it. ", e);
LOG.error(" , : SDK 。 , app, , ");
LOG.info("HTTP Status: " + e.getStatus());
LOG.info("Error Code: " + e.getErrorCode());
LOG.info("Error Message: " + e.getErrorMessage());
LOG.info("Msg ID: " + e.getMsgId());
}
}
/**
* ,
*
* @param userID
* ID
* @param json
*
* @throws APIRequestException
*/
public void sendPush(String userID, String json) {
JPushClient jpushClient = new JPushClient(Params.masterSecret, Params.appKey, null, ClientConfig.getInstance());
//
PushPayload payload = buildPushObject_messageWithExtras(userID, json);
try {
System.out.println(payload.toString());
PushResult result = jpushClient.sendPush(payload);
System.out.println(result + "................................");
LOG.info("Got result - " + result);
} catch (APIConnectionException e) {
LOG.error("Connection error. Should retry later. ", e);
} catch (APIRequestException e) {
LOG.error("Error response from JPush server. Should review and fix it. ", e);
LOG.error(" , : SDK 。 , app, , ");
LOG.info("HTTP Status: " + e.getStatus());
LOG.info("Error Code: " + e.getErrorCode());
LOG.info("Error Message: " + e.getErrorMessage());
LOG.info("Msg ID: " + e.getMsgId());
}
}
/**
* : , , , ALERT 。
*
* @return
*/
private PushPayload buildPushObject_all_all_alert(String alert) {
return PushPayload.alertAll(alert);//
}
/**
* : android_ios, "usirID", ALERT。 mklx——" "
*
* @return
*/
private PushPayload buildPushObject_all_alias_alert(String userID, String alert, String mklx) {
return PushPayload.newBuilder().setPlatform(Platform.android_ios())// :android_ios
.setAudience(Audience.alias(userID))// , , UserID
.setNotification(Notification.newBuilder().setAlert(alert)
.addPlatformNotification(AndroidNotification.newBuilder()
// .setTitle(TITLE)//android , app
.addExtra("mklx", mklx).build())
.addPlatformNotification(IosNotification.newBuilder()
// .setBadge(5)//ios , N
.addExtra("mklx", mklx).build())
.build())
.build();
}
/**
* : android_ios, "usirID", json——"{key:1,key:2}"。
*
* @return
*/
private PushPayload buildPushObject_messageWithExtras(String userID, String json) {
System.out.println("json====="+json);
return PushPayload.newBuilder().setPlatform(Platform.android_ios())
.setAudience(Audience.alias(userID))// , , UserID
.setMessage(Message.newBuilder()
.setMsgContent(json)
.build())
.build();
}
public class Params {
// , Key masterSecret
private static final String appKey = "";
private static final String masterSecret = "";
}
}
3. 극광 푸 시 메 시 지 를 수신 하 는 방송 수신 기 첨부
/**
* :JPushReceiver.class
* :
* Created by: on 2017/2/9.
* --------------------------------------
* :
* :
* Modify by:
*/
public class JPushReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
KL.d("[JPushReceiver] onReceive - " + intent.getAction() + ", extras: " + printBundle(bundle));
if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
KL.d("[JPushReceiver] Registration Id : " + regId);
//send the Registration Id to your server...
} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
KL.d("[JPushReceiver] : " + bundle.getString(JPushInterface.EXTRA_MESSAGE));
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
KL.d("[JPushReceiver] ");
int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
KL.d("[JPushReceiver] ID: " + notifactionId);
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
KL.d("[JPushReceiver] ");
} else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
KL.d("[JPushReceiver] RICH PUSH CALLBACK: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
// JPushInterface.EXTRA_EXTRA , Activity, ..
} else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
KL.d("[JPushReceiver]" + intent.getAction() +" connected state change to "+connected);
} else {
KL.d("[JPushReceiver] Unhandled intent - " + intent.getAction());
}
}
// intent extra
private String printBundle(Bundle bundle) {
StringBuilder sb = new StringBuilder();
for (String key : bundle.keySet()) {
if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {
sb.append("
key:" + key + ", value:" + bundle.getInt(key));
}else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){
sb.append("
key:" + key + ", value:" + bundle.getBoolean(key));
} else if (key.equals(JPushInterface.EXTRA_EXTRA)) {
if (bundle.getString(JPushInterface.EXTRA_EXTRA).isEmpty()) {
KL.d("This message has no Extra data");
continue;
}
} else {
sb.append("
key:" + key + ", value:" + bundle.getString(key));
}
}
return sb.toString();
}
}
주: mainfests 등록:
android:name=".util.JPushReceiver"
android:enabled="true"
android:exported="false">
android:name="cn.jpush.android.intent.REGISTRATION" />
android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" />
android:name="cn.jpush.android.intent.CONNECTION" />
android:name="com.house" />
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.