1. 程式人生 > ># Android 極光推送伺服器端和移動端

# Android 極光推送伺服器端和移動端

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) {

                        }
                    });

通過以上就可以進行伺服器端和客戶端進行互動了