`
langzhe
  • 浏览: 281867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apns推送

 
阅读更多

 

 

 

 

 

%%%-------------------------------------------------------------------                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
%%% @doc
%%%
%%% @end
%%% Created : 31 Aug 2012 langxianzhe@163.com 
%%%-------------------------------------------------------------------

-module(test_apns).
-record(apns_connection, {apple_host        = "gateway.sandbox.push.apple.com"      :: string(),
                          apple_port        = 2195                                  :: integer(),
                          cert_file         = "priv/cert.pem"                       :: string(),
                          key_file          = undefined                             :: undefined | string(),
                          timeout           = 30000                                 :: integer(),
                          error_fun         = fun(X,Y) -> erlang:display({X,Y}) end :: fun((binary(), apns:status()) -> stop | _),
                          feedback_host     = "feedback.sandbox.push.apple.com"     :: string(),
                          feedback_port     = 2196                                  :: integer(),
                          feedback_fun      = fun erlang:display/1                  :: fun((string()) -> _),
                          feedback_timeout  = 30*60*1000                            :: pos_integer()
                          }).
-record(apns_msg, {id = apns:message_id()       :: binary(),
                   expiry = apns:expiry(86400)  :: non_neg_integer(), %% default = 1 day
                   device_token                 :: string(),
                   alert = none                 :: none | apns:alert(),
                   badge = none                 :: none | integer(),
                   sound = none                 :: none | string(),
                   extra = []                   :: [apns_mochijson2:json_property()]}).
-record(loc_alert, {body    = none  :: none | string(),
                    action  = none  :: none | string(),
                    key     = ""    :: string(),
                    args    = []    :: [string()],
                    image   = none  :: none | string()}).


         push_token/1]).
get_pid() ->
    {ok, Pid} = apns:connect(),
    Pid.
delete_pid(ConnId) ->
    apns:disconnect(ConnId).

push_by_pid(ConnId, Token1) ->
     Alert1 = #apns_msg{device_token = Token1,
                       badge = 9,
                       sound = "bingbong.aiff",
                       %extra = [{"jump","yes"}],
                       extra = [{jump, yes}],
                       alert = #loc_alert{body="hello1"
                                        }},
    io:format("In ~p:appns_packet ~p Alert1 = ~p ~n", [?MODULE, ?LINE, Alert1]),
    apns:send_message(ConnId, Alert1).


-spec push(DeviceToken :: string(), Alert :: tuple()) -> ok.
push(DeviceToken, Alert)->
    Conn = apns:connect(),
    case Conn of
        {ok,ConnId} ->
            Res = apns:send_message(ConnId, DeviceToken, Alert),
            Res1 = apns:send_message(ConnId, DeviceToken, Alert),
            case Res of
                ok ->
                    ok;
                Err ->
                    Err
            end,
            apns:disconnect(ConnId);
        Err ->
            Err
    end.
  1 #!/bin/sh
  2 
  3 #Usage:
  4 #test_certs {cert_file} {private_key_file}
  5 #Example:
  6 #test_certs aps_developer_indetity.cer aps_developer_identity.p12
  7 mkdir -p ./temp                                                             
  8 openssl pkcs12 -in "$2" -out ./temp/key-enc.pem
  9 openssl rsa -in ./temp/key-enc.pem -out ./temp/key.pem
 10 openssl x509 -inform der -in "$1" -out ./temp/cert.pem
 11 cat ./temp/cert.pem ./temp/key.pem > ./cert.pem
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                              
0
3
分享到:
评论

相关推荐

    最新java整合APNS推送服务

    Java整合APNS推送服务是将Java应用程序与Apple Push Notification Service(APNS)相结合,以便能够向iOS和tvOS设备发送即时消息。APNS是苹果公司提供的一个服务,它允许开发者在用户不打开应用的情况下,向他们的...

    关于IOS_APNS推送消息(iphone端+服务端)

    本文将深入探讨iOS APNS推送消息的实现,包括iPhone端和服务端的设置和交互。 首先,让我们从iPhone端开始。在iOS应用中集成APNs推送功能,开发者需要做以下几件事: 1. **获取设备Token**:当用户安装并首次运行...

    java调用apns推送的实现

    在Java环境中实现APNs推送,我们需要理解其工作原理,并掌握相应的API和技术。 首先,APNs推送的基本流程包括以下步骤: 1. **获取证书**:在Apple Developer后台创建一个Apple Push Services证书,下载.pem文件,...

    APNs推送Demo,适配iOS8.0+

    这个"APNs推送Demo,适配iOS8.0+"是一个示例项目,帮助开发者了解如何在iOS 8.0及以上版本的设备上实现APNs推送功能。 首先,我们需要理解APNs的工作原理。当应用注册到APNs时,设备会生成一个唯一的设备令牌,然后...

    本地推送以及APNS推送push

    本地推送和APNS推送是iOS应用中实现消息通知的关键技术,它们使得用户即使在应用未运行的情况下也能接收到重要信息。下面将详细讲解这两种推送方式的原理和交互机制。 一、本地推送 本地推送(Local Push)是iOS...

    .net APNS推送

    .NET APNS推送是一个基于.NET框架实现的用于向Apple Push Notification Service (APNS)发送推送通知的项目。APNS是苹果公司提供的服务,允许开发者通过云端将实时消息推送到iOS、iPadOS、watchOS以及macOS设备上的...

    C# apns 推送

    【C# APNS推送】 APNS(Apple Push Notification Service)是苹果公司提供的一个服务,用于向iOS、iPadOS、watchOS、tvOS等设备发送实时通知。开发者可以通过使用APNS来实现在应用未运行时向用户发送消息的功能,...

    APNS推送jar

    阿里封装的APNS推送工具包 可以使用ios客户端的APNS推送功能

    java apns 推送示例

    Java APNS推送是Java开发中实现向iOS设备发送推送通知的一种技术。APNS(Apple Push Notification Service)是苹果公司提供的一个服务,允许开发者通过服务器端将实时消息推送到用户的iOS设备上,即使应用在后台或者...

    Java向苹果服务器推送消息(Java实现HTTP/2协议发送APNS)

    要使用Java实现APNs推送,你需要以下组件: 1. **证书和密钥**:首先,你需要从Apple Developer Portal获取一个APNs证书和对应的私钥。这些文件通常以.p12格式提供,包含了你的开发者身份验证信息。 2. **Java ...

    Apns消息推送测试工具Debug版本V1.0

    然而,测试APNs推送的过程可能会相对复杂,尤其对于开发者而言。这时,一个方便的测试工具就显得尤为必要。本文将详细介绍“Apns消息推送测试工具Debug版本V1.0”,它是一个专为Windows环境设计的,用于测试iOS离线...

    C# apns 推送消息

    苹果APNS推送,C#实现通过APNS向客户手机推送消息,Apple Push Notification Service

    APNS推送消息到达后的处理流程

    当你的应用接收到APNS推送的消息后,需要有一套处理流程来确保消息能够正确且及时地呈现在用户面前。这篇博客文章可能详细探讨了这一过程,但遗憾的是,具体的博客内容并未提供。 APNS推送消息到达后的处理流程大致...

    iOS苹果推送apns测试工具.zip

    总之,`iOS苹果推送apns测试工具.zip`包含的资源对于iOS开发者来说是至关重要的,它简化了APNs推送的测试过程,有助于确保应用在实际使用中的通知功能正常、稳定。通过熟练掌握APNs的工作原理和使用测试工具,开发者...

    [其他文档] ios APNS推送服务器代码pushTest

    APNS推送流程主要包括以下步骤: 1. **获取证书**:开发者需要在Apple Developer Portal上创建并下载APNs证书,分为生产环境和开发环境两种,分别对应App的正式发布和测试阶段。 2. **连接APNs**:在PHP中,我们可以...

    apns.jar包用于apns推送

    apns.jar包,用于apns推送,直接导入就可以使用了

    ios APNS推送服务器代码pushMe

    ios APNS推送服务器php核心代码pushMe

    Easy APNs Provider -iOS:Mac 推送测试工具.zip

    这个"Easy APNs Provider - iOS:Mac 推送测试工具"是专门针对iOS设备进行APNs推送消息测试的一个实用工具,特别适合开发者在调试和验证推送通知功能时使用。 ### 工具特点与功能 1. **设备令牌管理**:此工具提供...

    java进行苹果APNS消息推送

    在`ApplyPushProject`这个项目中,可能已经封装了以上步骤,包含了两个方法来执行APNS推送。一个方法可能是设置连接和配置,另一个可能是实际执行推送操作。通过阅读和理解项目的代码,你可以看到这些步骤是如何具体...

    APNS 苹果消息推送项目源码,运行即用,代码+数据库+文档全打包

    这个“APNS 苹果消息推送项目源码,运行即用”包含了实现APNs推送功能的完整项目,非常适合希望自主管理苹果设备消息推送的开发者。 首先,让我们详细了解一下APNs的基本概念。APNs是苹果为开发者提供的一个接口,...

Global site tag (gtag.js) - Google Analytics