我需要在我的应用中实现iOS推送通知。我已经尝试了一段时间并完成了所需的iOS端代码更改。我可以从APNS获取设备令牌。但我坚持提供者方实施。
我正在使用java提供程序并使用JAVAPNS库来实现提供程序端逻辑。令我困惑的是证书安装和提供商所需的东西。
我的提供商在unix / windows机器上运行,我不知道如何在这里继续安装SSL证书。
我已从Apple开发者网站获得推送通知的SSL证书。但是如何继续使用p12文件?
虽然有很多关于推送通知的iOS端实现的讨论和教程,但我没有在网上找到很多解释。
答案 0 :(得分: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
答案 1 :(得分: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");
}
}