SORU
27 HAZİRAN 2009, CUMARTESİ


Apple ANATOMİSİ (push notification services) örnek kod

Örnek bir proje İPhone APNS kullanmayı ve bir şeyler kurmak için nasıl gösteren var mı? Şu anda belgelerine bakıyorum ama bazı çalışma kodu ayrı almak ve birlikte nasıl çalıştığını görmek için iyi olurdu?

Bir şey google kullanarak veya iphone dev Center'da bulmak için görünmüyor olabilir.

CEVAP
28 EYLÜL 2009, PAZARTESİ


İtme bildirim hizmeti kurma hakkında kötü tarafı sağlama. Ben rastladım büyük bir engel bir sertifika olduğunu ve bir anahtar .bildirimler gönderdiği cer Apple'ın sitesinden dosya indirme C sistemi bir servis yazdım# ve bağlantıları sertifikası ve anahtarı verilen kaldım. çünkü başarısız tuttu

Aslında bunu kimin yazdığını hatırlamıyorum, işte ilk bildirim hizmeti test ederken bana yardımcı python kodunu biraz. Çok basit ve çok iyi test sırasında çalışır.

import socket, ssl, json, struct

# device token returned when the iPhone application
# registers to receive alerts

deviceToken = 'XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX' 

thePayLoad = {
     'aps': {
          'alert':'Oh no! Server\'s Down!',
          'sound':'k1DiveAlarm.caf',
          'badge':42,
          },
     'test_data': { 'foo': 'bar' },
     }

# Certificate issued by apple and converted to .pem format with openSSL
# Per Apple's Push Notification Guide (end of chapter 3), first export the cert in p12 format
# openssl pkcs12 -in cert.p12 -out cert.pem -nodes 
#   when prompted "Enter Import Password:" hit return
#
theCertfile = 'cert.pem'
# 
theHost = ( 'gateway.sandbox.push.apple.com', 2195 )

# 
data = json.dumps( thePayLoad )

# Clear out spaces in the device token and convert to hex
deviceToken = deviceToken.replace(' ','')
byteToken = bytes.fromhex( deviceToken ) # Python 3
# byteToken = deviceToken.decode('hex') # Python 2

theFormat = '!BH32sH%ds' % len(data)
theNotification = struct.pack( theFormat, 0, 32, byteToken, len(data), data )

# Create our connection using the certfile saved locally
ssl_sock = ssl.wrap_socket( socket.socket( socket.AF_INET, socket.SOCK_STREAM ), certfile = theCertfile )
ssl_sock.connect( theHost )

# Write out our data
ssl_sock.write( theNotification )

# Close the connection -- apple would prefer that we keep
# a connection open and push data as needed.
ssl_sock.close()

Ayrıca raylar bir gem eğer raylar bir uygulama, ben sadece bugün gördüm ve konsoldan bildirimleri göndermek başardı geliştiriyorsanız oldukça iyi iş gibi görünüyor apn_on_rails " diye bir şey var.

İPhone tarafında sadece aşağıdaki Bildirimleri tüm türleri için kayıt arama gerekir:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert];

Cihaz token almak için aşağıdaki temsilci yöntemleri uygulamak gerekir:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

Test sırasında sadece tekme deviceToken için konsol ile NSLog, yapıştırın python betiği yukarıda, üretim olacak belli ki ihtiyacı için kurulmuş bazı yöntemini belirteç sunucuları.

Ayrıca, üretim Apple'ın geri bildirim hizmet sorgu ve uygulaması kaldırıldı kullanıcılardan cihaz simgeleri kaldırmak gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bucky Roberts

    Bucky Robert

    9 HAZİRAN 2011
  • bunliu

    bunliu

    2 Mayıs 2007
  • DigitalRev TV

    DigitalRev T

    30 AĞUSTOS 2007