Android 接入 PubNubSDK 推送

来源:互联网 发布:网络文明主题班会教案 编辑:程序博客网 时间:2024/05/21 17:13

我发现 现在做的 除了个别事情,其他都是为了项目需求做的。 有没有好可怕。。。

嗯 PubNubSDK 也是为了海外 推送做的。

PubNubSDK 推送是海外一款 算是免费中不错的提送SDK吧(免费的肯定是受限制的,比如推送的字符长度,每天或者每个帐号推送的消息数量等等)

那先说怎么集成进去的把,
去官网注册帐号(注册的时候需要翻墙)
https://admin.pubnub.com
注册之后
可以 created new app
然后根据步骤走就好了。

需要在官网准备的东西(都可以在上面的官网下载到的)

1. 先下载 PubNubSDK jar文件
https://s3.amazonaws.com/pubnub/sdk/java/pubnub-4.2.0-all.jar

2. 下载代码资源(这里根据你选进来的是 IOS ,Android 来的)
https://github.com/pubnub/java/

3. 下载 jar 包后放在 libs 目录下,eclipse 刷新 然后自动导入jar,
需要在android 的AndroidManifest.xml 文件中配置权限
  • <uses-permission android:name="android.permission.INTERNET" />
  • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

4. 初始化 SDK
//配置
PNConfiguration pnConfiguration =newPNConfiguration();
   pnConfiguration.setSubscribeKey("注册的时候看自己的注册的app里面会有");
   pnConfiguration.setPublishKey("注册的时候看自己的注册的app里面会有");
pnConfiguration.setSecure(false);//设置开发模式
//初始化
PubNub pubnub =newPubNub(pnConfiguration);

//监听abcd1234发来的消息
pubnub.subscribe().channels(Arrays.asList("abcd1234")).execute();


//添加监听
pubnub.addListener(mSubscribeCallback)

SubscribeCallbackmSubscribeCallback =newSubscribeCallback(){

//状态
@Override
   publicvoidstatus(PubNub pubnub, PNStatus status) {
if(status.getCategory() == PNStatusCategory.PNConnectedCategory)
{

//注册了一个abcd1234 的消息,设置的message 为 hello!!
//需要注册一个回调 连接的状态是否成功
pubnub.publish().channel("abcd1234").message("hello!!").async(newPNCallback<PNPublishResult>() {
@Override
                        publicvoidonResponse(PNPublishResult result, PNStatus status) {
               // Check whether request successfully completed or not.
                            if(!status.isError()) {
 
            // Message successfully published to specified channel.
                            }
             // Request processing failed.
                            else{
 
// Handle message publish error. Check 'category' property to find out possible issue
                                // because of which request did fail.
                                //
           // Request can be resent using: [status retry];
                            }
                        }
});
}
}

//如果收到消息就会到message这里
@Override
   publicvoidmessage(PubNub pubnub, PNMessageResult message) {
// Handle new message stored in message.message
            if(message.getChannel() !=null) {
                // Message has been received on channel group stored in
                // message.getChannel()
            }
            else{
                // Message has been received on channel stored in
                // message.getSubscription()
            }
 
            /*
                log the following items with your favorite logger
                    - message.getMessage()
                    - message.getSubscription()
                    - message.getTimetoken()
            */
}

@Override
   publicvoidpresence(PubNub pubnub, PNPresenceEventResult presence)
{
   }
}

然后在app销毁的时候 需要调用

pubnub.destroy();

------------------------------分割线-----------------------------------

以上就是个简单的 PubNub 接入方法


上面是客户端自己发送自己接收的。
然而 我们需要的是服务器 传送过来,客户端接收

那么客户端需要和服务器定好channel(也就是上面的abcd1234)

客户端只需要监听 这个 channel ,服务器 只需要负责发送这个 channel 的消息。

PS 如果是全部推送,可以把 channel 定义好,如果是 需要单个的推送,某些可以看见。那么需要拿到这个用户的 唯一标识(如:device id)

其官网介绍的很详细,而且有 API 所以,以上只是提供了简单的接入,如果要更多的功能可以去官网 瞄几眼。得意


最后 我想问问 大家 有没有用过海外 比较靠谱的推送啊 求介绍啊哈哈哈哈(支持离线推送的是最好了) thx微笑
1 0
原创粉丝点击