女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]1、iOS客戶端編程推送通知技術在Mac OS X和iOS系統(tǒng)上都可以運行,我們本章主要介紹iOS客戶端編程,推送通知的編程比較簡單,編程的關鍵是獲得令牌,這是從APNS返回的,然后

1、iOS客戶端編程

推送通知技術在Mac OS X和iOS系統(tǒng)上都可以運行,我們本章主要介紹iOS客戶端編程,推送通知的編程比較簡單,編程的關鍵是獲得令牌,這是從APNS返回的,然后還有把提交給內容提供商。下面我們看看開發(fā)之前的一些準備工作。

配置Xcode工程

編寫iOS推送應用需要在Xcode工程中進行一些配置,這些配置是主要是設置代碼簽名標識,代碼簽名標識的前提要有配置概要文件(Provisioning Profiles)。

有了配置概要文件即可以設置代碼簽名標識了,需要下載概要文件到本地,代碼簽名標識需要選擇這個配置概要文件。選擇TAGETS→MyNotes→Code Signing Identity,選擇你自己的代碼簽名標識。

設置完成之后可以開始編碼工作了。

代碼實現(xiàn)

推送通知的代碼實現(xiàn)主要分為兩個步驟,第一步注冊接收通知,第二步接收注冊結果。這些工作都是在應用程序委托對象AppDelegate中實現(xiàn)的。

我們先看看注冊部分的代碼:

- (BOOL)application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

//注冊接收通知類型

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:

(UIRemoteNotificationTypeBadge

| UIRemoteNotificationTypeSound

| UIRemoteNotificationTypeAlert)];

//設置圖標標記

application.applicationIconBadgeNumber = 1;

return YES;

}

注冊過程比較長,它通過APNS從蘋果公司返回,注冊結束后的回調方法代碼:

- (void)application:(UIApplication*)application

didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

{

NSLog(@”設備令牌: %@”, deviceToken); ①

NSString *tokeStr = [NSString stringWithFormat:@"%@",deviceToken]; ②

if ([tokeStr length] == 0) {

return;

}

NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"<>"];

tokeStr = [tokeStr stringByTrimmingCharactersInSet:set]; ③

tokeStr = [tokeStr stringByReplacingOccurrencesOfString:@" " withString:@""]; ④

NSString *strURL = @”http://192.168.1.103/push_chat_service.php”; ⑤

NSURL *url = [NSURL URLWithString:strURL];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

[request setPostValue:tokeStr forKey:@"token"];

[request setPostValue:@"98Z3R5XU29.com.51work6.PushChat" forKey:@"appid" ];

[request setDelegate:self];

NSLog(@”發(fā)送給服務器”);

[request startAsynchronous]; ⑥

}

- (void)application:(UIApplication*)application

didFailToRegisterForRemoteNotificationsWithError:(NSError*)error

{

NSLog(@”獲得令牌失敗: %@”, error);

}

2、推送服務端編程

內容提供者接收到設備的令牌并保存起來,在有新的內容需要推送的時候,他們將啟動一個服務程序逐個設備推送他們的內容。在推送具體的過程中并非直接 由內容提供者,直接發(fā)送給用戶設備,而是服務程序與APNS通訊建立信任連接,然后把數(shù)據推送給APNS,再由APNS利用安全通道推送給用戶設備。

如果要編寫內容提供者的推送服務程序,我們需要進行SSL認證編程,以及構建APNS數(shù)據包,數(shù)據包分為3個主要部分:Command(命令)、deviceToken(令牌)和Payload(載荷)。載荷不能超過256字節(jié),是JSON格式,例如:

{“aps” : {

“alert” : ”You got your emails.”,

“badge” : 9,

“sound” : ”bingbong.aiff”

}

}

作為推出服務程序可以使用很多計算機語言實現(xiàn),如果從便于管理角度看,使用PHP、Java和.NET,甚至是Note.js都是可以選擇的。本書重點介紹PHP和Java編寫推送服務程序。

使用PHP實現(xiàn)推送服務

PHP是非常不錯的服務器端腳本,這么多年來沒有被JavaEE和.NET蠶食掉,說明它有過人之處。PHP編程簡單很多人原意使用,實現(xiàn)本章推送服務也很簡單。下面代碼是實現(xiàn)了推送的PHP代碼:

$deviceToken= ’1634899aef6c71ed5c0667d6658677a914c5ec3b545887e8173854970dee24db’;

//推送方式,包含內容和聲音

$body = array(“aps” => array(“alert” => ’新年好. from PHP’,”badge” => 11,”sound”=>’default’)); ①

//創(chuàng)建數(shù)據流上下文對象

$ctx = stream_context_create();

//設置pem格式文件

$pem = ”apns-dev.pem”; ②

//設置數(shù)據流上下文的本地認證證書

stream_context_set_option($ctx,”ssl”,”local_cert”, $pem); ③

$pass = ”51work6.com”;

//設置數(shù)據流上下文的密碼

stream_context_set_option($ctx, ’ssl’, ’passphrase’, $pass); ④

//產品發(fā)布APNS服務器,gateway.push.apple.com

//測試APNS服務器,gateway.sandbox.push.apple.com[!--empirenews.page--]

//socket通訊

$fp = stream_socket_client(“ssl://gateway.sandbox.push.apple.com:2195″, $err, $errstr, 60,

STREAM_CLIENT_CONNECT, $ctx); ⑤

if (!$fp) {

echo ”連接失敗.”;

return;

}

print ”連接OKn”;

//載荷信息,JSON編碼

$payload = json_encode($body); ⑥

//構建發(fā)送的二進制信息

$msg = chr(0) . pack(“n”,32) . pack(“H*”, str_replace(‘ ’, ”, $deviceToken))

. ack(“n”,strlen($payload)) . $payload; ⑦

echo ”發(fā)送消息:” . $payload .”n”;

fwrite($fp, $msg);

fclose($fp);

?>

打開終端窗口執(zhí)行如下命令:

$ openssl pkcs12 -in 證書.p12 -out apns-dev.pem -nodes

Enter Import Password:

MAC verified OK

回車后需要輸入密碼,這個密碼是導出“證書.p12”時候設置的密碼。

PHP代碼編寫完成可以運行PHP了,有兩種方法可以運行,一種是把這個文件放到Apache HTTP服務器目錄下,并保證Apache下安裝和 PHP,然后用瀏覽器運行,在瀏覽器中輸入http://localhost/phpPNs/Pusher.php,這個URL是我自己 Apache HTTP服務器上的PHP文件。

另外一種方法,簡單的多,我們不需要安裝Apache HTTP服務器,只需要安裝了PHP解釋器就可以了,我們在終端中運行下面的指令:

$ php -f Pusher.php

連接OK

發(fā)送消息:{“aps”:{“alert”:”u65b0u5e74u597d. from PHP”,”badge”:11,”sound”:”default”}}

這樣就可以推送通知了,如果一切正常推送成功,用戶的設備就可以接收到通知了。

使用Java推送服務

上面我們介紹了PHP實現(xiàn)的推送服務程序,使用其它語言編寫基本的過程也一樣的,這一節(jié)我們就介紹Java推送服務程序。由于具體的流程與PHP一 樣,這里我們就不再自己編寫Java的實現(xiàn)代碼,而是使用別人已經封裝好的javapns(http://code.google.com/p /javapns/)類庫,它封裝了socket實現(xiàn)細節(jié)問題,開發(fā)起來變的比較簡單了。

下面代碼是實現(xiàn)了推送的Java代碼:

package com._51work6;

import javapns.Push;

import javapns.notification.PushNotificationPayload;

public class Pusher {

public static void main(String[] args) {

try {

PushNotificationPayload payload = new PushNotificationPayload(); ①

payload.addCustomAlertBody(“新年好!from Java”); ②

payload.addBadge(11); ③

payload.addSound(“default”); ④

Push.payload(payload, ”ssl/證書.p12″, ”51work6.com”, false,

“1634899aef6c71ed5c0667d6658677a914c5ec3b545887e8173854970dee24db”); ⑤

} catch (Exception e) {

e.printStackTrace();

}

}

}

上面的代碼還依賴與下面的類庫:bcprov-jdk15-146.jar、JavaPNS_2.2.jar和log4j-1.2.15.jar。 其中bcprov-jdk15-146.jar和JavaPNS_2.2.jar可以在http://code.google.com/p /javapns/下載到。log4j-1.2.15.jar到http://logging.apache.org/log4j/1.2 /download.html下載。

這個Java程序的運行我們就不再介紹了,它是一個Java Application可以在有jre環(huán)境運行,我們可以把它做成JavaWeb程序,這樣就可以在瀏覽器中發(fā)送通知了。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

當?shù)貢r間周一,埃隆?馬斯克旗下人工智能初創(chuàng)公司 xAI 與社交媒體平臺 X(原 Twitter)聯(lián)合發(fā)起訴訟,指控蘋果與 OpenAI 非法阻礙人工智能領域競爭,核心反對蘋果將 ChatGPT 深度集成至 iOS 系統(tǒng)的...

關鍵字: 馬斯克 蘋果 OpenAI iOS ChatGPT

從按下快門前就對照片進行即時銳化,到通話過程中實時消除背景噪音,再到離線狀態(tài)下與人工智能 (AI) 助手互動,端側 AI 正在重塑移動體驗。而 Arm 計算平臺正是實現(xiàn)這些無縫交互體驗的強勁驅動力。

關鍵字: 人工智能 iOS 安卓

北京2025年2月28日 /美通社/ -- 日前,《服務器操作系統(tǒng)遷移指南》(以下簡稱《指南》)經中國電子工業(yè)標準化技術協(xié)會批準后正式發(fā)布,將于3月正式實施?!吨改稀酚衫顺毙畔款^,中國電子技術標準化研究院、阿里云、統(tǒng)信...

關鍵字: 操作系統(tǒng) 編寫 CPU 內存

創(chuàng)新能源儲存解決方案旨在提升車輛安全性與效率 12V和48V電壓架構合同的開創(chuàng)性簽署,充分體現(xiàn)了本行業(yè)對Clarios先進超級電容器技術的堅定信心 威斯康星州格倫代爾2025年1月7日 /美通社/ --...

關鍵字: iOS 超級電容器 RIO 電力

北京2025年1月3日 /美通社/ -- 近日,人民日報海外網與中華環(huán)保聯(lián)合會聯(lián)合主辦的第二屆中國品牌形象海外傳播論壇暨2024中國企業(yè)ESG藍皮書發(fā)布會在北京舉行?,F(xiàn)場發(fā)布了《企業(yè)ESG藍皮書:中國企業(yè)環(huán)境、社會與治理...

關鍵字: 可持續(xù)發(fā)展 WIND 智能化 編寫

無錫2024年11月14日 /美通社/ -- 布勒集團受蘇美達股份有限公司邀請,于2024年11月5日至10日,與線上線下17個國家108家品牌制造商一起,以"聯(lián)動世界,共贏未來"為主題同臺亮相第七屆...

關鍵字: 數(shù)字化 HELIO iOS 智能制造

喬和比利從小就是好朋友。兩家公司都在食品管理方面開展了各自的業(yè)務。喬是一個技術極客,而比利信奉老派風格。然而,在最初的5年里,Joe在食品行業(yè)獲得了很多聲譽,而Billy未能在業(yè)務中獲得回報,因此計劃關閉。

關鍵字: 物聯(lián)網 食品工業(yè) Android iOS

php 偽代碼是一種非正式的類自然語言代碼表示形式,用于描述算法邏輯,不受具體編程語言語法的限制。編寫 php 偽代碼的步驟包括:選擇適當?shù)慕Y構(順序、選擇、循環(huán))使用清晰的語法(關鍵詞、縮進、注釋)描述算法邏輯(簡要句...

關鍵字: 偽代碼 PHP

AppsFlyer 的最新發(fā)布的《2024 電商?App 營銷現(xiàn)狀報告》顯示,建立客戶關系、提高用戶忠誠度將成為電商?App 銷售旺季的制勝關鍵。 北京2024年8月22日 /美通社/ -- 全球營銷衡量與體驗管理平臺...

關鍵字: 移動 APPS BSP iOS

實時操作系統(tǒng)是保證在一定時間限制內完成特定功能的操作系統(tǒng)。實時操作系統(tǒng)有硬實時和軟實時之分,硬實時要求在規(guī)定的時間內必須完成操作,這是在操作系統(tǒng)設計時保證的;軟實時則只要按照任務的優(yōu)先級,盡可能快地完成操作即可。

關鍵字: OS iOS
關閉