# Android 極光推送伺服器端和移動端
阿新 • • 發佈:2019-02-07
Android 極光推送伺服器端和移動端
這裡是Android 有關伺服器端進行推送和手機客戶端接收的一些簡單的例子
伺服器端採用的是MyEclipse2014,手機端是Android studio 2.0
下面是一個簡單的JSP頁面程式碼
<body>
<form action="MyJpushServlset" method="GET">
輸入標題<input type="text" name="title">
<br />
輸入內容<input type="text" name="content" />
<br/>
裝置號碼<input type="text" name="alias" />
<br/>
<select name="select" >
<option value="type">選擇推送型別</option>
<option value="type1">推送給所有使用者</option>
<option value="type2">推送給指定使用者</option>
</select>
<input type="submit" value ="推送" />
</form>
</body>
這是伺服器端封裝的工具類
/**
* 這裡是極光推送伺服器端的程式碼
* @author ZPH
* @
* */
public class MyJpushUtil {
private static final String appKey = "你的appKey";
private static final String masterSecret = "你的masterSecret ";
public static JPushClient jpushClient = new JPushClient(masterSecret, appKey, 3 );
/**
*
* 傳送給所有的Android端裝置(只要是稽核通過,並且在客戶端登入成功的使用者都可以收到該條簡訊)
* @param title,content
*
* */
public static void SendToAllUserMessage(String title,String content){
PushPayload payload = buildPushObject_all_alias_alert(title,content);
try {
PushResult result = jpushClient.sendPush(payload);
if(result.isResultOK()){
System.out.println("訊息推送成功......");
}
else
System.out.println("訊息推送失敗......");
} catch (APIConnectionException e) {
System.out.println("訊息給所有使用者推送失敗,APIConnectionException異常");
} catch (APIRequestException e) {
System.out.println("訊息給所有使用者推送失敗,APIRequestException異常");
e.printStackTrace();
}
}
/**
* 推送到所有的平臺的返回值 PushPayload
* */
private static PushPayload buildPushObject_all_alias_alert(String title,String content) {
return PushPayload.newBuilder().setPlatform(Platform.all())// 設定接受的平臺
.setAudience(Audience.all())// Audience設定為all,說明採用廣播方式推送,所有使用者都可以接收到
.setNotification(Notification.android(content, title, null)).build();
}
/**
*
* 手機號作為裝置的指定標記
* 根據裝置號(手機號)推送給指定的使用者
* @param title,content,phonenumber
* */
public static void SendToOneUserMessage(String title,String content,String phonenumber){
PushPayload payload = buildPushObject_android_tag_alertWithTitle(title,content,phonenumber);
try {
PushResult result = jpushClient.sendPush(payload);
if(result.isResultOK()){
System.out.println("訊息推送成功......");
}
else
System.out.println("訊息推送失敗......");
} catch (APIConnectionException e) {
System.out.println("訊息給所有使用者推送失敗,APIConnectionException異常");
e.printStackTrace();
} catch (APIRequestException e) {
System.out.println("訊息給所有使用者推送失敗,APIRequestException異常");
e.printStackTrace();
}
}
/**
* 推送到指定使用者的返回值 PushPayload
* */
private static PushPayload buildPushObject_android_tag_alertWithTitle(
String title, String content,String phonenumber) {
return PushPayload.newBuilder().setPlatform(Platform.android())
.setAudience(Audience.alias(phonenumber))
.setNotification(Notification.android(content, title, null))
.build();
}
}
然後通過servlet進行獲取輸入內容和簡單呼叫
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String title=new String(request.getParameter("title").getBytes("iso-8859-1"),"utf-8");;//從 request 中獲取名為 title 的引數的值
String content=new String(request.getParameter("content").getBytes("iso-8859-1"),"utf-8");//從 request 中獲取名為 content 的引數的值
String phonenumber=new String(request.getParameter("alias").getBytes("iso-8859-1"),"utf-8");//獲取裝置資訊
// ToJpushAndroid(title,content,alias);
String type=new String(request.getParameter("select").getBytes("iso-8859-1"),"utf-8");
System.out.println("推送的標題是:"+title+"\n推送的內容是:"+content+
"\n推送的手機端號碼是:"+phonenumber);
if(type.equals("type2")){
//給指定的使用者
System.out.println("推送型別是:推送給指定使用者");
MyJpushUtil.SendToOneUserMessage(title, content, phonenumber);
}
else{
//給所有的使用者
System.out.println("推送型別是:推送給所有使用者");
MyJpushUtil.SendToAllUserMessage(title, content);
}
}
所需要的jar包網上可以下載,這裡就不給連結下載了。
以上是jpush的伺服器端
下面是我們的android端進行的編寫
Android端進行JPush環境的搭建可按照官網說明進行
這裡我只是把使用者手機號作為接受資訊的唯一標示
JPushInterface.setAlias(LoginActivity.this, phonenumber, new TagAliasCallback() {
@Override
public void gotResult(int i, String s, Set<String> set) {
}
});
通過以上就可以進行伺服器端和客戶端進行互動了