zoukankan      html  css  js  c++  java
  • 极光推送

    今天来说一下极光推送的故事,极光推送是一个独立的第三方云推送平台。大家可以看一下极光推送官网的SDK文档,比我写的详细得多!

    简单使用

    • 1、在这之前必须要注册一个极光推送的账号,否则一切都是白谈
    • 2、创建一个应用,可以是android、ios、wp,这里我注册的是android应用,需要注意的是应用包名,请让包名和你的开发项目的包名相同,此时就会生成AppKey
    • 3.1、此时就可以点击“下载 Android Example”下载一个例子源码,在开发平台(Eclipse)导入此应用,在手机上运行,然后在极光的后台推送消息,此时就可以收到推送消息
    • 3.2、如果不需要Example源码,完全可以自己一步一步创建工程,进行编写

    编写代码

    • 1、下载极光推送的Android SDK文档
    • 2、导入 SDK 开发包到你自己的应用程序项目
      • 复制 libs/jpush-sdk-release1.x.y.jar 到工程 libs/ 目录下
      • 复制 libs/armeabi/libjpush1xy.so 到工程 libs/armeabi 目录下
      • 复制 libs/armeabi-v7a/libjpush.so 到工程 libs/armeabi-v7a 目录下
    • 3、配置 AndroidManifest.xml
      • 复制备注为 “Required” 的部分
      • 将备注为替换包名的部分,替换为当前应用程序的包名
      • 将AppKey替换为在Portal上注册该应用的的Key,例如(9fed5bcb7b9b87413678c407)
    • 4、添加代码
      • 以下代码定制一个本应用程序 Application 类。需要在 AndoridManifest.xml 里配置。请参考上面 AndroidManifest.xml 片断,或者 example 项目。
     public class ExampleApplication extends Application {
           @Override
           public void onCreate() {
               super.onCreate();
               JPushInterface.setDebugMode(true);
               JPushInterface.init(this);
           }
    }
    • 5 、现在就可以将极光推送Demo作为Android Studio的Module运行在真机或虚拟机上,并调试了

    高级功能

    • 1、在我们接收到极光推送给我们的消息,我们是可以进行处理的,但是在这之前我们必须要在 AndroidManifest.xml 里添加如下的配置信息。
    <receiver  
      android:name="Your Receiver"
      android:enabled="true">
      <intent-filter>
        <action android:name="cn.jpush.android.intent.REGISTRATION" />
        <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
        <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
        <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
        <category android:name="You package Name" />
      </intent-filter>
    </receiver>
    • 2、创建你的广播接收者,重写onReceive方法
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        Log.d(TAG, "onReceive - " + intent.getAction());
        if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
    } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent
            .getAction())) {
        System.out.println("收到了自定义消息。消息内容是:"
                + bundle.getString(JPushInterface.EXTRA_MESSAGE));
        // 自定义消息不会展示在通知栏,完全要开发者写代码去处理
    } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent
            .getAction())) {
        System.out.println("收到了通知");
        // 在这里可以做些统计,或者做些其他工作
    } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent
            .getAction())) {
        System.out.println("用户点击打开了通知");
        // 在这里可以自己写代码去定义用户点击后的行为
        String extra = bundle.getString(JPushInterface.EXTRA_EXTRA);
        try {
            JSONObject jo = new JSONObject(extra);
            String url = jo.getString("url");
            // 打开浏览器
            Uri uri = Uri.parse(url);
            Intent i = new Intent(Intent.ACTION_VIEW, uri);
            i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        }
     }

    扩展知识

    • 场景一、其实极光推送不仅仅只是推送通知而已,也可以通知自定义消息,比如说Json消息,如果有一个ListView需要更新数据,我们甚至不需要进行下拉刷新,假设我们要从服务器加载一条新闻数据,当后台管理员添加新闻数据的时候,服务器端就返回一条Json信息给客户端,然后我就就可以获取到新闻数据,把数据直接添加到ListVIew中即可。
    • 场景二:聊天软件的实现。假设张三要通过我们的软件和某妹子进行聊天,那么就可以采用极光推送,当张三发送“约吗?”消息后,我们其实可以把消息通过某接口(服务器端人员写的)发送到我们的自己的服务器上,然后我们的服务器要做的事情是找到到推送给那个人,然后在调用极光推送的接口推送消息给妹子。反过来也是一样,妹子发送消息“傻逼,滚”消息时,也是把消息发送到我们的服务器,我们的服务器找到推送的目标是“张三”,然后我们的服务器调用接口,让极光的服务器推送消息给张三。

    码字码的真累,还是敲代码有意思

  • 相关阅读:
    ASP.NET在禁用视图状态的情况下仍然使用ViewState对象【转】
    Atcoder Regular Contest 061 D Card Game for Three(组合数学)
    Solution 「CERC 2016」「洛谷 P3684」机棚障碍
    Solution 「CF 599E」Sandy and Nuts
    Solution 「洛谷 P6021」洪水
    Solution 「ARC 058C」「AT 1975」Iroha and Haiku
    Solution 「POI 2011」「洛谷 P3527」METMeteors
    Solution 「CF 1023F」Mobile Phone Network
    Solution 「SP 6779」GSS7
    Solution 「LOCAL」大括号树
  • 原文地址:https://www.cnblogs.com/cnsec/p/13407095.html
Copyright © 2011-2022 走看看