Java后台向苹果APNS推送文字,图片,视频功能

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/qq_37022150/article/details/73991913

务虚废话,直接来代码

方式一: 推送文字,百度Demo比较多,显示以下代码:

   try
    {
        
        //从客户端获取的deviceToken,在此为了测试简单,写固定的一个测试设备标识。
        String deviceToken = "f117797e2b98f3ca82c12e376dc5753debbff94396c7f427b22b086f65f6da89";
        System.out.println("Push Start deviceToken:" + deviceToken);
        //定义消息模式
        PayLoad payLoad = new PayLoad();
        payLoad.addAlert("this is test!");
        payLoad.addBadge(1);//消息推送标记数,小红圈中显示的数字。
        payLoad.addSound("default");
        payLoad.addCustomDictionary("url", "https://img.icos8.cc/image/hhvy");
        //注册deviceToken
        PushNotificationManager pushManager = PushNotificationManager.getInstance();
        pushManager.addDevice("iPhone", deviceToken);
        //连接APNS
        String host = "gateway.sandbox.push.apple.com"; //测试
        //String host = "gateway.push.apple.com";//生产
        int port = 2195;
//            String certificatePath = "D:/p12/**-cert.p12";//客户端生成的用于JAVA后台连接APNS服务的*.p12文件位置
        String certificatePath = "C:/tomcat/aps_development_key.p12";//客户端生成的用于JAVA后台连接APNS服务的*.p12文件位置
        String certificatePassword = "123123";//p12文件密码。
        pushManager.initializeConnection(host, port, certificatePath, certificatePassword, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
        //发送推送
        Device client = pushManager.getDevice("iPhone");
        System.out.println("推送消息: " + client.getToken()+"\n"+payLoad.toString() +" ");
        pushManager.sendNotification(client, payLoad);
        //停止连接APNS
        pushManager.stopConnection();
        //删除deviceToken
        pushManager.removeDevice("iPhone");
        System.out.println("Push End");
    }
    catch (Exception ex)
    {
        ex.printStackTrace();
    }
}

方式二: 推送图片

区别于方式一: 重写Payload方式,添加一些属性:

    private static final String APS = "aps";
    private Map<String, Object> params;
    private String alert;
    private Integer badge;
    private String sound = "";
//    private Integer contentAvailable;
    // 新添加
    private Integer mutableContent;
    
// 新添加    
    public Integer getMutableContent() {
        return mutableContent;
    }
    public void setMutableContent(Integer mutableContent) {
        this.mutableContent = mutableContent;
    }
    
    private String alertBody;
    private String alertActionLocKey;
    private String alertLocKey;
    private String[] alertLocArgs;
    private String alertLaunchImage;


细节点:  类似于苹果规定格式要求的json串,就行


方式三: 推送 视频:

与方式二一样;


提供思路: Java 后台推送消息至苹果APNS,苹果收到信息,推送至指定的deviceToken,也就是设备,客户端接收到消息,看其中是否有mutable-content,获取其值字段值为1,则说明推送的消息内容含有图片,客户端获取指定url,下载并展示到当前设备的通知栏




猜你喜欢

转载自blog.csdn.net/qq_37022150/article/details/73991913