【Android】Parse 开发笔记(4)—— Push Notifications(上)

前言

合理的运用Push服务,能大幅度提升用户活跃度,本博《Parse
Push疾速入门指南》仅简单介绍和采纳了一下Parse的推送服务,那里介绍更加多的使用办法和技能。体系文章分两篇来介绍Push服务,分别针对所有用户(上)和渠道定制用户(下)。

 

声明

迎接转发,但请保留文章原来出处:)

博客园:http://www.cnblogs.com

农民姑丈:
http://over140.cnblogs.com 

 

正文

一、系列

1.1
【Parse】开发笔记(1)——
准备

1.2
【Parse】开发笔记(2)—— 从Mysql导入数据到Parse
Data

1.3
【Parse】开发笔记(3)——
落成查找附近的听从(LBS)
 

  

二、准备

2.1 官网的Android
Push Notifications

https://www.parse.com/tutorials/android-push-notifications

2.2  【Android】Parse
Push火速入门指南

http://www.cnblogs.com/over140/archive/2013/03/19/2968560.html  

 

三、 功能

3.1 准备

AndroidManifest.xml

    <uses-permission android:name=”android.permission.INTERNET” />
    <uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />
    <uses-permission android:name=”android.permission.RECEIVE_BOOT_COMPLETED” />
    <uses-permission android:name=”android.permission.VIBRATE” />

    <application
        android:name=”com.nmbb.lol.LOLApplication”
        android:allowBackup=”true”
        android:icon=”@drawable/app_icon”
        android:label=”@string/app_name”
        android:theme=”@style/AppTheme” >
        <service android:name=”com.parse.PushService” />

        <receiver android:name=”com.parse.ParseBroadcastReceiver” >
            <intent-filter>
                <action android:name=”android.intent.action.BOOT_COMPLETED” />
                <action android:name=”android.intent.action.USER_PRESENT” />
            </intent-filter>
        </receiver>
        
        <receiver android:name=”.receiver.ReceiverPush” >
            <intent-filter>
                <action android:name=”com.nmbb.lol.push” />
            </intent-filter>
        </receiver>
    </application>

 
代码表明:

专注,那只是代码片段,出席项目做相应的调整。 

a)、android.permission.RECEIVE_BOOT_COMPLETED权限非必须,可以把那几个和ParseBoradcastReceiver的BOOT_COMPLETED一起去掉,但重启后可能就不能接收推送了,必要打开一次应该才方可。(我就想那样!能少用一个权力就少一个)注意新闻不会丢掉,会在下三遍联合接受。

b)、PushService必必要登记,否则不可以利用 

c)、ReceiverPush后边要利用,主要用以收纳播放,方便自己处理推送数据。 

 

Application

    @Override
    public void onCreate() {
        super.onCreate();

        Parse.initialize(this, “Application ID”,
                “Client Key”);
        // PushService.subscribe(this, “”, WebActivity.class);
        PushService.setDefaultPushCallback(this, WebActivity.class);
        ParseInstallation.getCurrentInstallation().saveInBackground();
    }

 代码表达:

除去配置AndroidManifest.xml,仅在Application的onCreate中插足那三行代码即可。

a)、注意最后一行好像是新近创新加上的,否则不可能收到到Push,大意是登记注册的情致,可以在Data
Browser中目的Installation中见到。

b)、setDefaultPushCallback第四个参数,表示点击Notifacation时处理的Activity

 

3.2
以通告(Notification)的花样呈现推送音信(状态栏展现文告)

进入Parse后台的Push Notifications,点击Send a push 

3.2.1
以新闻(Message)的样式发送

图片 1

透过查阅发送报告,发现实际也是以JSON数据发送的,不过只包罗alert节点。 

 

3.2.2 以JSON格局发送 

图片 2 

title和alert分别对应Android
Notification对象的标题和新闻,不安装title就默许显示APP的名目。

末尾点击Send
Notification就足以了,顺遂的话能够见到装备上接受Notification。

 

3.2.3 处理通报音讯

当点击状态栏的关照时,会默许跳转到setDefaultPushCallback指定的Activity中,可以从Intent中解析Push的数量:

 图片 3

直接从getIntent().getStringExtra(“com.parse.Data”)即可取到下边的音讯,然后成功业务逻辑即可。

 

3.2
自定义以广播的样式后台接受推送新闻(状态栏不显示公告)

只要以JSON格式发送,并且不带有title和alert节点,即不会显得Notification了(大家可以反编译看一下StandardPushCallback类),那么什么样接受Push的数据吧?

3.2.1
首先注册Boradcast,设置Intent-filter,那里设置的action是com.nmbb.lol.push,代码下面已经付出。

3.2.2 json数据:

{“action”:”com.nmbb.lol.push”,”url”:”http://v.youku.com/player/getRealM3U8/vid/XNTU1NjkzMDAw/type/mp4/v.m3u8"}

总得带有action和包容的值,才能承受到推送广播。接下来就可以做你想做的业务了!那里贴一下Boradcast代码:

public class ReceiverPush extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (context != null && intent != null
                && “com.nmbb.lol.push”.equals(intent.getAction())) {
            try {
                JSONObject json = new JSONObject(intent.getExtras().getString(
                        “com.parse.Data”));
                String title = json.optString(“title”);
                String message = json.optString(“message”);
                String action = json.optString(“action”);
                String url = json.optString(“url”);
                
                ToastUtils.showLongToast(message);
                
            } catch (JSONException e) {
                Logger.e(e);
            }
        }
    }

}

 

3.3 其他注意

a).
发送音信时留意右上角的recipients的数量,表示接到推送用户的数目。

b).
注意在Settings中开启Client push

c).
明日还遇上一个特意意外的题材,死活收不到推送,不晓得是或不是和APP名称设置为华语有关系,删了重建弄个英文的又好了。 

 

四、文章

Android Push
Notifications In Parse: A deep
overview

 

相关文章