MACの下でiOSのプッシュを使用してJavaテスト

まず、今のテストプッシュIOSソフトウェアの下でマックの多くは、なぜそれをテストするためにJavaプログラムを使用するがあります。

ほとんどの背景プッシュサービスはJavaで開発される可能性があるため、私たちは、ファイルが正しいMACプッシュ証明書を検証するためにエクスポートし、

iOSの開発者の開発者証明書を作成し、セルフテストは、エクスポートされたJAVA P12プッシュ証明書ファイルが正しいことを確認するために使用する必要があります。

 

MACキーから1のiOS開発者のP12証明書形式の文字列の輸出プッシュ。

2. MAC Java環境の設定

   最初にJavaをインストールし、公式から、インストールすることができるJava SDKのDMG形式をダウンロードするには非常に簡単です。

   テストプログラムは、いくつかのJavaライブラリのjarパッケージを必要とし、私はOK使用次のjarパックをテストし、

   一般的にジャクソンに使用される、javapns、log4jの3つのパッケージ:直接ダウンロードの名前、または対応する公式サイトからダウンロードした上でのBaidu

    ジャクソン・コア-2.9.9.jar

  javapns-jdk16-2.4.0.jar

  アパッチ-のlog4j-2.12.0.jar(これは、いくつかのlog4jジャーであってもよいです)

3.依存jarファイルのパッケージをインストールします。

   Javaのパッケージをインストールしたディレクトリの下に、MAC /ライブラリ/ Javaの/拡張機能/

   私たちは、トップディレクトリにすることができ瓶の上にパッケージをダウンロードしてください。

4.テストJavaのプログラムコード

輸入はjava.util.ArrayList; 
輸入はjava.util.List; 
輸入javapns.devices.Device。
輸入javapns.devices.implementations.basic.BasicDevice。
輸入javapns.notification.AppleNotificationServerBasicImpl。
輸入javapns.notification.PushNotificationManager。
輸入javapns.notification.PushNotificationPayload。
輸入javapns.notification.PushedNotification。

/ *** 
 *依赖的ジャー包有
 ジャクソンコア-2.9.9.jar 
 javapns-jdk16-2.4.0.jar 
 のapache-のlog4j-2.12.0.jar 
 * 
 * // MAC下安装的路径到/ライブラリ/ Javaの/拡張機能/目录下
 * 
 * //测试のjavac PushMsg.javaのJava PushMsg 
 * 
 * /
 
publicクラスPushMsg {
        静的な無効メインパブリック(文字列[]引数)は例外{スロー

                するSystem.out.println(「スタートZSL ==========プッシュメッセージを」); 
                INT =バッジ1;アイコンの//値が赤に変わり
                文字列の音=「デフォルト」; //着信音
                //がプッシュする、モバイルデバイストークン数
                文字列deviceToken =「753c86b495613089f02dcd3f735f0ada9e2d40f84c0a6360802ea57e55f43b8x」; 
                //ここでは、テストメッセージのプッシュする
                文字列=メッセージは、「プッシュへのメッセージは、テストデバイスをiOSの」; 

                一覧<文字列>のトークン=新しい新しいのArrayList <文字列>(); 
                tokens.add(deviceToken); 

                // Javaのp12とエクスポートされたファイル、PHPを使用する必要があり、その後、あるPEMファイル 
                証明書は本番環境やテスト環境であることに注意してください//は、
                文字列certificatePath =」./APNS_iOS_3.p12 "; 
                // MACキーチェーンからパスワード、提供輸出証明書
                の文字列msgCertificatePassword =" 1" ; 

                trueにブール= SENDCOUNT; 

                PushNotificationPayload新しい新しいペイロードPushNotificationPayload =(); 
                payload.addAlert(メッセージ) ; //メッセージ内容
                payload.addBadge(バッジ); 
                payload.addCustomDictionary( "haahi"、 "UID")、 "タイプ"、12)payload.addCustomDictionary; 
                payload.addCustomDictionary( "タイトル"、 "haahi"); 
                ペイロード.addSound( "default.caf")。//トーン

                PushNotificationManager pushManager =新しいPushNotificationManager();
                //真:本番環境のiOSに対応する偽プッシュ:対応するテスト環境のiOSプッシュ 
                pushManager.initializeConnection(新しいAppleNotificationServerBasicImpl(certificatePath、msgCertificatePassword 、真));
                一覧<PushedNotification>通知=新しいのArrayList <PushedNotification>(); 
                //开始推送消息
                IF(SENDCOUNT){ 
                        デバイスデバイス=新しいBasicDevice()。
                        device.setToken(deviceToken)。
                        PushedNotification通知= pushManager.sendNotification(デバイス、ペイロード、偽)。
                        notifications.add(通知)。
                }他{ 
                        リスト<デバイス>デバイス=新規のArrayList <デバイス>(); 
                        (文字列トークン:トークン)のための{
                                devices.add(新しいBasicDevice(トークン)); 
                        }
                        通知=のpushManager.sendNotifications(ペイロード、デバイス)
                } 

                リスト<PushedNotification> failedNotification = PushedNotification.findFailedNotifications(通知)。
                一覧<PushedNotification> successfulNotification = PushedNotification 
                                .findSuccessfulNotifications(通知)。
                int型失敗= failedNotification.size(); 
                int型の成功= successfulNotification.size(); 
                System.out.println( "ZSL ==========成功数:" +成功しました)。
                System.out.println( "ZSL ==========失败数:" +失敗しました)。
                pushManager.stopConnection(); 
                System.out.println( "ZSL ==========消息推送完毕");

  

ノートを持っているコード

証明書、証明書のパスワードをプッシュ、プッシュ型生産やテスト証明書へのパスをプッシュし、必要がトークンの上に携帯電話をプッシュすることに注意してください。

 

5.テストを実行します

  Macのターミナルは、javacのコンパイルで

   javacのPushMsg.java

  次いで、得られたPushMsg.classを実行します

   javaのPushMsg

  ログ、および検証するための通知を受けた携帯端末を参照してください。

 

ccMBP:20190726javaPushのccの$ javacのPushMsg.java 
ccMBP:20190726javaPushのCC $のJava PushMsgの
ZSL ==========开始推送消息
ERROR StatusLoggerませんLog4jの2設定ファイルを発見しました。(コンソールにエラーのみをログに記録する)デフォルトの設定、またはユーザープログラムで提供さの設定を使用します。Log4jの2内部の初期化ログを表示するように設定、システムのプロパティ「log4j2.debug」。Log4jの2を設定する方法については、https://logging.apache.org/log4j/2.x/manual/configuration.htmlを参照してください
1:ZSLを==========成功数
==== ZSL ======失败数:0 
ZSL ==========消息推送完毕

  

     

プッシュ参照コード:https://www.jianshu.com/p/7a9f544a1ae3

 

おすすめ

転載: www.cnblogs.com/cocoajin/p/11250413.html