• 关于ios极光推送server端注意的地方


    今天试用了极光推送API

    用它是因为,大多数人说它的文档是最全的,但是用过之后,发现关于IOS的文档,还是很不够,导致走了一点弯路!

    特别是服务端的代码:https://github.com/jpush/jpush-api-java-client  for java

    Java代码 复制代码 收藏代码
    1. JPushClient jpushClient = new JPushClient(masterSecret, appKey, 0, DeviceEnum.Android, false);  
    2. CustomMessageParams params = new CustomMessageParams();  
    3. params.setReceiverType(ReceiverTypeEnum.TAG);  
    4. params.setReceiverValue(tag);  
    5.   
    6. MessageResult msgResult = jpushClient.sendCustomMessage(msgTitle, msgContent, params, null);  
    7. LOG.debug("responseContent - " + msgResult.responseResult.responseContent);  
    8. if (msgResult.isResultOK()) {  
    9.     LOG.info("msgResult - " + msgResult);  
    10.     LOG.info("messageId - " + msgResult.getMessageId());  
    11. else {  
    12.     if (msgResult.getErrorCode() > 0) {  
    13.         // 业务异常  
    14.         LOG.warn("Service error - ErrorCode: "  
    15.                 + msgResult.getErrorCode() + ", ErrorMessage: "  
    16.                 + msgResult.getErrorMessage());  
    17.     } else {  
    18.         // 未到达 JPush   
    19.         LOG.error("Other excepitons - "  
    20.                 + msgResult.responseResult.exceptionString);  
    21.     }  
    22. }  
    JPushClient jpushClient = new JPushClient(masterSecret, appKey, 0, DeviceEnum.Android, false);
    CustomMessageParams params = new CustomMessageParams();
    params.setReceiverType(ReceiverTypeEnum.TAG);
    params.setReceiverValue(tag);
    
    MessageResult msgResult = jpushClient.sendCustomMessage(msgTitle, msgContent, params, null);
    LOG.debug("responseContent - " + msgResult.responseResult.responseContent);
    if (msgResult.isResultOK()) {
        LOG.info("msgResult - " + msgResult);
        LOG.info("messageId - " + msgResult.getMessageId());
    } else {
        if (msgResult.getErrorCode() > 0) {
            // 业务异常
            LOG.warn("Service error - ErrorCode: "
                    + msgResult.getErrorCode() + ", ErrorMessage: "
                    + msgResult.getErrorMessage());
        } else {
            // 未到达 JPush 
            LOG.error("Other excepitons - "
                    + msgResult.responseResult.exceptionString);
        }
    }

     这是它的推送案例,只有android的,没有IOS的!

    附送ios的代码:

    后来发现IOS完全不能试用sendCustomMessage这个方法.

    Java代码 复制代码 收藏代码
    1. /** 
    2.  *  
    3.  */  
    4. package org.haoyi.push;  
    5.   
    6. import java.util.HashMap;  
    7. import java.util.Map;  
    8.   
    9. import org.apache.log4j.Logger;  
    10.   
    11. import cn.jpush.api.JPushClient;  
    12. import cn.jpush.api.common.DeviceEnum;  
    13. import cn.jpush.api.push.IosExtras;  
    14. import cn.jpush.api.push.MessageResult;  
    15. import cn.jpush.api.push.NotificationParams;  
    16. import cn.jpush.api.push.ReceiverTypeEnum;  
    17.   
    18. /** 
    19.  * @author zfanxu 
    20.  *  
    21.  */  
    22. public class PushDemo {  
    23.     public static final int MAX = Integer.MAX_VALUE / 2;  
    24.     public static final int MIN = MAX / 2;  
    25.     private static Logger LOG = Logger.getLogger(PushDemo.class);  
    26.   
    27.     public static void main(String[] args) {  
    28.   
    29.         JPushClient jpushClient = new JPushClient(Config.JPUSH_MASTER_SECRET,  
    30.                 Config.JPUSH_APPKEY, 0, DeviceEnum.IOS, false);  
    31.   
    32.         for (int i = 0; i < 1; i++) {  
    33.             String notificationContent = "show me your money!";  
    34.             NotificationParams param = new NotificationParams();  
    35.             param.setSendNo(getRandomSendNo());  
    36.             param.setReceiverType(ReceiverTypeEnum.REGISTRATION_ID);  
    37.             param.setReceiverValue("071f06f8c18");  
    38.   
    39.             Map<String, Object> extras = new HashMap<String, Object>();  
    40.             IosExtras iosExtra = new IosExtras(1, "message.wav");// badge  
    41.             // set badge and sound  
    42.             extras.put("ios", iosExtra);  
    43.   
    44.             MessageResult msgResult = jpushClient.sendNotification(  
    45.                     notificationContent, param, extras);  
    46.   
    47.             if (msgResult.isResultOK()) {  
    48.                 LOG.info("msgResult - " + msgResult);  
    49.                 LOG.info("messageId - " + msgResult.getMessageId());  
    50.             } else {  
    51.                 if (msgResult.getErrorCode() > 0) {  
    52.                     // 业务异常  
    53.                     LOG.warn("Service error - ErrorCode: "  
    54.                             + msgResult.getErrorCode() + ", ErrorMessage: "  
    55.                             + msgResult.getErrorMessage());  
    56.                 } else {  
    57.                     // 未到达 JPush  
    58.                     LOG.error("Other excepitons - "  
    59.                             + msgResult.responseResult.exceptionString);  
    60.                 }  
    61.             }  
    62.   
    63.         }  
    64.     }  
    65.   
    66.     /** 
    67.      * 保持 sendNo 的唯一性是有必要的 It is very important to keep sendNo unique. 
    68.      *  
    69.      * @return sendNo 
    70.      */  
    71.     public static int getRandomSendNo() {  
    72.         return (int) (MIN + Math.random() * (MAX - MIN));  
    73.     }  
    74. }  
    /**
     * 
     */
    package org.haoyi.push;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.log4j.Logger;
    
    import cn.jpush.api.JPushClient;
    import cn.jpush.api.common.DeviceEnum;
    import cn.jpush.api.push.IosExtras;
    import cn.jpush.api.push.MessageResult;
    import cn.jpush.api.push.NotificationParams;
    import cn.jpush.api.push.ReceiverTypeEnum;
    
    /**
     * @author zfanxu
     * 
     */
    public class PushDemo {
    	public static final int MAX = Integer.MAX_VALUE / 2;
    	public static final int MIN = MAX / 2;
    	private static Logger LOG = Logger.getLogger(PushDemo.class);
    
    	public static void main(String[] args) {
    
    		JPushClient jpushClient = new JPushClient(Config.JPUSH_MASTER_SECRET,
    				Config.JPUSH_APPKEY, 0, DeviceEnum.IOS, false);
    
    		for (int i = 0; i < 1; i++) {
    			String notificationContent = "show me your money!";
    			NotificationParams param = new NotificationParams();
    			param.setSendNo(getRandomSendNo());
    			param.setReceiverType(ReceiverTypeEnum.REGISTRATION_ID);
    			param.setReceiverValue("071f06f8c18");
    
    			Map<String, Object> extras = new HashMap<String, Object>();
    			IosExtras iosExtra = new IosExtras(1, "message.wav");// badge
    			// set badge and sound
    			extras.put("ios", iosExtra);
    
    			MessageResult msgResult = jpushClient.sendNotification(
    					notificationContent, param, extras);
    
    			if (msgResult.isResultOK()) {
    				LOG.info("msgResult - " + msgResult);
    				LOG.info("messageId - " + msgResult.getMessageId());
    			} else {
    				if (msgResult.getErrorCode() > 0) {
    					// 业务异常
    					LOG.warn("Service error - ErrorCode: "
    							+ msgResult.getErrorCode() + ", ErrorMessage: "
    							+ msgResult.getErrorMessage());
    				} else {
    					// 未到达 JPush
    					LOG.error("Other excepitons - "
    							+ msgResult.responseResult.exceptionString);
    				}
    			}
    
    		}
    	}
    
    	/**
    	 * 保持 sendNo 的唯一性是有必要的 It is very important to keep sendNo unique.
    	 * 
    	 * @return sendNo
    	 */
    	public static int getRandomSendNo() {
    		return (int) (MIN + Math.random() * (MAX - MIN));
    	}
    }
    

    先挖个坑,下班后,再填满!

  • 相关阅读:
    配置Log4j(非常具体)
    System.Net.WebClient.cs
    Code:获取指定汉字的首字母
    DBS:目录
    Jasper:推送 API
    Jasper-template
    Code:Base64 编码/解码
    DCloud-HTML5+:5+ App开发入门指南
    DCloud-HTML5+:barcode
    Nuget-QRCode:QRCoder
  • 原文地址:https://www.cnblogs.com/lovewx/p/4153392.html
Copyright © 2020-2023  润新知