<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Roger Boesch &#187; Push Notification</title>
	<atom:link href="http://www.rogerboesch.com/tag/push-notification/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rogerboesch.com</link>
	<description>iPhone, iPad und iPod Touch</description>
	<lastBuildDate>Thu, 01 Apr 2010 20:04:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Push Notifications</title>
		<link>http://www.rogerboesch.com/2009/06/28/push-notifications/</link>
		<comments>http://www.rogerboesch.com/2009/06/28/push-notifications/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 14:57:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPhone/iPad Programming]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[Push Notification]]></category>

		<guid isPermaLink="false">http://www.rogerboesch.com/?p=173</guid>
		<description><![CDATA[Push Notifications sind sicherlich eines der Highlights im SDK 3.0. Obwohl relativ leicht zu implementieren, gibt es doch einige Fallstricke und Fragen, die auftauchen, wenn man sich mit dem Thema befasst. In diesem Artikel geht es dabei im Wesentlichen um die Einbindung auf dem iPhone. Fast die meiste Arbeit gilt es jedoch auf einem Push [...]]]></description>
			<content:encoded><![CDATA[<p>Push Notifications sind sicherlich eines der Highlights im SDK 3.0. Obwohl relativ leicht zu implementieren, gibt es doch einige Fallstricke und Fragen, die auftauchen, wenn man sich mit dem Thema befasst. In diesem Artikel geht es dabei im Wesentlichen um die Einbindung auf dem iPhone. Fast die meiste Arbeit gilt es jedoch auf einem Push Provider (Server) zu implementieren, doch dazu mehr in einem der nächsten Post&#8217;s.</p>
<p>Im SDK stehen neue Methoden zur Verfügung, um Push Notifications einzubinden. Diese werden im Application Delegate untergebracht und werden vom iPhone entsprechend den eingehene Notifications aufgerufen. Dabei sind die Schritte immer dieselben:</p>
<ol>
<li>Registrieren beim Apple Notification Server (APNS). Dies ist bei jedem Start erforderlich und geschieht mittels: <em>registerForRemoteNotificationTypes</em></li>
<li>Danach ruft das iPhone OS eine der beiden Methoden auf. Im Falle einer erfolgreichen Registrierung:<em><br />
didReceiveRemoteNotification</em>, falls nicht <em>didFailToRegisterForRemoteNotificationsWithError</em>.</li>
</ol>
<p>Das war&#8217;s dann leider auch schon fast, was das SDK zu bieten hat. Leider wird beispielweise <em>didRecieveNotification</em> nur aufgerufen, wenn die Applikation gerade geöffnet ist. Erscheint jedoch die bekannte Alert Box, die einem auf eine Push Notification hinweist, wird die eigene iApp zwar gestartet, allerdings ist das Vorgehen dann anders, um darauf zu reagieren. Hier wurde eine weitere Methode eingefüht, die es  erlaubt, sogenante Launch Options beim Aufstarten abzufragen, ähnlich von Command Line Parametern auf Desktop Rechner. Auf dem iPhone heisst die entsprechende Methode <em>didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;</em> die es zu implementieren gilt. Dabei ist der wichtige Parameter <em>launchOptions</em>, in dem mittels des Keys <em>UIApplicationLaunchOptionsRemoteNotificationKey</em> die notwendigen Push Infos abgefragt werden können, was dann ungefähr so aussieht:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #400080;">NSDictionary</span><span style="color: #002200;">*</span> userInfo <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>launchOptions valueForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIApplicationLaunchOptionsRemoteNotificationKey&quot;</span><span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p>So haben wir nun iPhone seitig alles zusammen, um Push Notifications einzubinden. Alles Andere erfolgt ausschliesslich auf dem APNS und dem eigenen Server. Eine Herausforderung bleibt dabei das Testing und wie das am Besten zu bewerkstelligen ist, beschreibe ich im nächsten Topic of the Week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rogerboesch.com/2009/06/28/push-notifications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
