蘋(píng)果推送服務(wù)java代碼 ios推送服務(wù)端代碼

蘋(píng)果官方有沒(méi)有關(guān)于 java 推送到 apns文檔

直接給你代碼參考吧

成都創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、成都微信小程序、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開(kāi)發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十余年以來(lái),已經(jīng)為千余家成都木屋各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的千余家客戶與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。

public?static?void?main(String[]?args)?throws?Exception?

{

try

{

//從客戶端獲取的deviceToken,在此為了測(cè)試簡(jiǎn)單,寫(xiě)固定的一個(gè)測(cè)試設(shè)備標(biāo)識(shí)。

String?deviceToken?=?"df779eda?73258894?5882ec78?3ac7b254?6ebc66fe?fa295924?440d34ad?6505f8c4"

System.out.println("Push?Start?deviceToken:"?+?deviceToken);

//定義消息模式

PayLoad?payLoad?=?new?PayLoad();

payLoad.addAlert("this?is?test!");

payLoad.addBadge(1);//消息推送標(biāo)記數(shù),小紅圈中顯示的數(shù)字。

payLoad.addSound("default");

//注冊(cè)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?=?"c:/PushTest.p12";//前面生成的用于JAVA后臺(tái)連接APNS服務(wù)的*.p12文件位置

String?certificatePassword?=?"123456";//p12文件密碼。

pushManager.initializeConnection(host,?port,?certificatePath,?certificatePassword,?SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

//發(fā)送推送

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();

}

}

}

Java服務(wù)器端如何接收IOS遠(yuǎn)程推送傳遞來(lái)的devicetoken

您好,(1)下載前面建立的cer文件和provisioning文件,雙擊,導(dǎo)入到xcode中,在build setting中code signing一欄里選擇這兩個(gè)文件的名稱,這樣就可以將支持push的app部署到真機(jī)中。

(2)處理推送消息

客戶端對(duì)推送消息的處理分兩種情況:

一. 在App沒(méi)有運(yùn)行的情況下,系統(tǒng)收到推送消息,用戶點(diǎn)擊推送消息,啟動(dòng)App。此時(shí),不會(huì)執(zhí)行前面提到的 didReceiveRemoteNotification函數(shù),而是在App的applicationDidFinishLaunching函數(shù)中處理推送,通過(guò)以下代碼可以獲取推送消息中的數(shù)據(jù): NSDictionary *userInfo =[launchOptionsobjectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

二 . 當(dāng)APP處于前臺(tái)時(shí),系統(tǒng)收到推送消息,此時(shí)系統(tǒng)不會(huì)彈出消息提示,會(huì)直接觸發(fā)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo函數(shù),推送數(shù)據(jù)在userInfo字典中。

當(dāng)App處于后臺(tái)時(shí),如果系統(tǒng)收到推送消息,當(dāng)用戶點(diǎn)擊推送消息時(shí),會(huì)執(zhí)行application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo函數(shù),

此時(shí)AppDelegate中函數(shù)執(zhí)行的順序?yàn)椋?/p>

applicationWillEnterForeground

application:didReceiveRemoteNotification

applicationDidBecomeActiveI

java 如何實(shí)現(xiàn)系統(tǒng)消息推送

消息推送方式分為兩種:短連接和長(zhǎng)連接。也就是客戶端與服務(wù)器之間的數(shù)據(jù)傳輸交互方式不同。

1、短連接又稱為輪詢,方式為pull。客戶端定時(shí)向服務(wù)器發(fā)送請(qǐng)求,詢問(wèn)是否有數(shù)據(jù),時(shí)間頻次可以設(shè)置。這種的方式更適合web端使用,用在APP有很多弊端。

2、長(zhǎng)連接方式為push,服務(wù)器主動(dòng)向客戶端發(fā)送數(shù)據(jù)。市面上移動(dòng)端產(chǎn)品基本采用這種方式,但是ios和android系統(tǒng)有很大的區(qū)別。不論手機(jī)上安裝了多少個(gè)APP,也只有一條長(zhǎng)連接,消息最終由蘋(píng)果服務(wù)器進(jìn)行內(nèi)置分發(fā)。即使用戶關(guān)閉了APP,依然可以收到消息推送。

實(shí)現(xiàn)系統(tǒng)消息推送,就需要比較好的第三方軟件就行輔助,極光就是一個(gè)不錯(cuò)的選擇。極光JPush 是經(jīng)過(guò)考驗(yàn)的大規(guī)模 App 推送平臺(tái),每天推送消息量級(jí)為數(shù)百億條。JPush 提供可視化的 web 端控制臺(tái)發(fā)送通知,統(tǒng)計(jì)分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手機(jī)平臺(tái)。

java消息推送

如果只是彈出信息的那種UI的話,你應(yīng)該搞得定

而如果是類似App那樣彈出信息的功能的話,web搞不定,得App才行。開(kāi)發(fā)App可以是Android的也可以是iOS的。如果是iOS的話,可以通過(guò)蘋(píng)果的消息推送服務(wù)進(jìn)行。而如果用Android的話,Google自己也有消息推送服務(wù)(貌似是Android 4.0以后才有),國(guó)內(nèi)的話,平臺(tái)就多了,有各大廠商自己的推送服務(wù),也有BAT的推送服務(wù),還有如訊飛等的其他商業(yè)推送服務(wù)。這些都要錢(qián)的

java如何獲取蘋(píng)果apns上應(yīng)用卸載的信息,用戶卸載了軟件后臺(tái)不知道還在推送消息。

不會(huì)有這個(gè)現(xiàn)象,蘋(píng)果的推送不是服務(wù)器端發(fā)送的,而是蘋(píng)果服務(wù)器端發(fā)送的。看來(lái)還不熟悉蘋(píng)果APP推送流程。

用戶在初次使用APP時(shí),會(huì)被提示是否接受推送信息,如果接受,APP的服務(wù)器端會(huì)獲得一個(gè)APP傳回來(lái)的token;

APP服務(wù)器端再把這個(gè)token連同推送消息一起發(fā)送給蘋(píng)果服務(wù)器端;蘋(píng)果服務(wù)器端識(shí)別這個(gè)token后,就會(huì)向用戶的手機(jī)發(fā)送推送消息;當(dāng)APP卸載后,這個(gè)token也就失效了,也就無(wú)法推送了。

蘋(píng)果apns java怎么推送

import java.io.InputStream;

import java.util.List;

import com.dbay.apns4j.IApnsService;

import com.dbay.apns4j.impl.ApnsServiceImpl;

import com.dbay.apns4j.model.ApnsConfig;

import com.dbay.apns4j.model.Feedback;

import com.dbay.apns4j.model.Payload;

/**

* @author RamosLi

*

*/

public class Apns4jDemo {

private static IApnsService apnsService;

private static IApnsService getApnsService() {

if (apnsService == null) {

ApnsConfig config = new ApnsConfig();

InputStream is = Apns4jDemo.class.getClassLoader().getResourceAsStream("Certificate.p12");

config.setKeyStore(is);

config.setDevEnv(false);

config.setPassword("123123");

config.setPoolSize(5);

apnsService = ApnsServiceImpl.createInstance(config);

}

return apnsService;

}

public static void main(String[] args) {

IApnsService service = getApnsService();

// send notification

String token = "94c4764e4645f42a7b2052692c8b5b41f9d5c925876e11fec5721e9045ee4e5b";

Payload payload = new Payload();

payload.setAlert("How are you?");

// If this property is absent, the badge is not changed. To remove the badge, set the value of this property to 0

payload.setBadge(1);

// set sound null, the music won't be played

// payload.setSound(null);

payload.setSound("msg.mp3");

payload.addParam("uid", 123456);

payload.addParam("type", 12);

service.sendNotification(token, payload);

// payload, use loc string

Payload payload2 = new Payload();

payload2.setBadge(1);

payload2.setAlertLocKey("GAME_PLAY_REQUEST_FORMAT");

payload2.setAlertLocArgs(new String[]{"Jenna", "Frank"});

service.sendNotification(token, payload2);

// get feedback

ListFeedback list = service.getFeedbacks();

if (list != null list.size() 0) {

for (Feedback feedback : list) {

System.out.println(feedback.getDate() + " " + feedback.getToken());

}

}

try {

// sleep 5s.

Thread.sleep(5000);

} catch (Exception e) {

e.printStackTrace();

}

// It's a good habit to shutdown what you never use

service.shutdown();

// System.exit(0);

}

}

包含推送功能、蘋(píng)果的feedback功能,很是實(shí)用方便。

對(duì)于源碼,我整理成了工程,下載地址為:

文章標(biāo)題:蘋(píng)果推送服務(wù)java代碼 ios推送服務(wù)端代碼
網(wǎng)頁(yè)路徑:http://www.muchs.cn/article0/dosedio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作、定制開(kāi)發(fā)、企業(yè)建站、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)