0

我需要在我的应用程序中实现 iOS 推送通知。我已经尝试了一段时间,并完成了所需的 iOS 端代码更改。我能够从 APNS 获取设备令牌。但我坚持提供者端的实现。

我正在使用 java 提供程序并使用 JAVAPNS 库来实现提供程序端逻辑。令我困惑的是提供商所需的证书安装和东西。

我的提供程序在 unix/windows 机器上运行,我不确定如何在此处继续安装 SSL 证书。

我已经从苹果开发者网站获得了推送通知的 SSL 证书。但是我该如何处理 p12 文件呢?

尽管有很多关于推送通知的 iOS 端实现的讨论和教程,但我在网上没有找到很多解释。

4

2 回答 2

0

如果您使用的是 JavaPNS,则很简单:

 import javapns.Push;

 public class PushTest {


      public static void main(String[] args) {

                Push.alert("Hello World!", "keystore.p12", "keystore_password", false, "Your token");


      }
 }
于 2013-02-27T12:39:47.730 回答
0

SSL 证书用于从您的服务器端代码建立到 gateway.push.apple.com 的套接字连接。以下是一些 Ruby 代码作为示例:

  APN_SSL_KEY_FILE = 'lib/SSLCert_Private_Key.pem'
  APN_SSL_HOST     = 'gateway.push.apple.com'
  APN_SSL_PORT     = 2195
  APN_SSL_PASSWORD = '<password>'

  def configure_apn_cert
    @@apn_cert         = File.read(File.join(RAILS_ROOT, APN_SSL_KEY_FILE))
    @@apn_context      = OpenSSL::SSL::SSLContext.new
    @@apn_context.key  = OpenSSL::PKey::RSA.new(@@apn_cert, APN_SSL_PASSWORD)
    @@apn_context.cert = OpenSSL::X509::Certificate.new(@@apn_cert)
  end

  def create_and_configure_apn_server
    configure_apn_cert if not @@apn_cert
    puts "APN Service: Configuring APN SOCKET and SSL connection"
    @apn_socket       = TCPSocket.new(APN_SSL_HOST, APN_SSL_PORT)
    @apn_ssl          = OpenSSL::SSL::SSLSocket.new(@apn_socket, @@apn_context)
    @apn_ssl.sync     = true
    @apn_ssl.connect
    @apn_is_active = false;    # reopen the TCP/SSL sockets for now
  end

你会得到一个 .pem 文件:

$ openssl pkcs12 -in myfile.p12 -out myfile.pem
于 2013-02-27T04:12:22.467 回答