Cobub Razor个推插件

它集成了个推的推送功能与Cobub Razor提供的Tag功能,更加方便,快捷,精准的进行推送。
个推开放平台帮助企业的应用通过低成本互联网通道进行消息推送,提供完善、高效、稳定的服务体系解决了互联网云端到手机端的消息互通问题。

1.注册为Cobub用户中心账户

Cobub用户中心是一个面向移动开发者的服务平台,针对移动开发过程中的产品生命周期过程,整合Cobub Razor平台的移动应用数据,提供系列的增值服务。移动开发者在Cobub用户中心可以一站式的解决产品遇到的各种问题。

用户需要注册为Cobub用户中心的正式用户后,方可使用个推插件服务。

尚未注册,立即前往Cobub用户中心注册


2.获取授权码并在Cobub Razor授权模块中进行认证

授权码是Cobub Razor与用户中心交互的秘钥,用户需要获取秘钥后方能在Cobub Razor账户授权模块中进行授权。

账户授权后方能使用Cobub用户中心提供的丰富的Cobub Razor扩展功能与增值服务。

获取授权码并在Cobub Razor授权模块中进行认证


3.将个推插件代码集成到Cobub Razor中

在Cobub Razor 0.6版本以上,Cobub Razor开放了插件功能. 个推插件基于Cobub Razor现有结构编写。并默认集成于Cobub Razor中。

如果用户尚未安装此插件,可以将插件代码下载后拷贝至Cobub Razor applications 目录。

代码集成后,用户在我的插件模块中即可看到当前安装的所有插件列表,找到个推插件,并激活。

激活后您即可使用个推插件功能。


4.激活个推应用并获取授权码

若要使用个推插件中的推送,系统需要为每个App(当前只支持Android平台)分配相应的授权Key.获取的授权key需要配置到从Cobub用户中心下载的SDK中。

具体SDK集成指南,请详见 个推SDK集成指南


5.个推SDK集成指南

注意:
1. CobubRazor中必须使用从Cobub用户中心下载的SDK才能使用插件的推送功能。 请不要到个推官方进行下载。
集成步骤
1.将获取到的ums.jar和GexinSdk.jar添加到项目的libs目录。
2.在项目上右键选择Build Path->Configure build path..—>左侧选择 Java Build Path—>选择Libraries选择卡—>Add JARs.. —>选择当前项目的Libs目录,选中jar包,然后点击OK.
3.配置AndroidManifest.xml文件。
* 添加授权
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
* 加入服务声明
<receiver android:name="com.cobub.CobubBroadReceiver">
<intent-filter>
<action android:name="cobub.razor.message"/>
<action android:name="com.igexin.sdk.action.获取到的 appid" />
</intent-filter>
</receiver>
< 如下配置用于透传,MsgReceiver 继承自BroadcastReceiver <
<receiver android:name="PACKAGENAME.MsgReceiver">
<intent-filter>
<action android:name="com.igexin.sdk.action.获取到的 appid"/>
</intent-filter>
    </receiver>
<meta-data
android:name="UMS_APPKEY"
android:value="获取到的 UMS_APPKEY" />
<!-- Getui SDK begins -->
<meta-data android:name="appid" android:value="获取到的 appid" />
<meta-data android:name="appkey" android:value="获取到的 appkey" />
<meta-data android:name="appsecret" android:value="获取到的 appsecret" />
<activity android:name="com.igexin.sdk.SdkActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:taskAffinity="android.task.SdkActivityTask"
android:excludeFromRecents="true"
android:process="PACKAGENAME.pushservice">
<intent-filter>
<action android:name="com.igexin.action.popupact.PACKAGENAME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service android:label="NotifyCenterAIDL"
android:name="com.igexin.sdk.coordinator.SdkMsgService"
android:process="PACKAGENAME.pushservice"
android:exported="true">
</service>
<receiver android:name="com.igexin.sdk.coordinator.NotificationCenterAIDLReceiver">
<intent-filter>
<action android:name="com.igexin.sdk.action.refreshls" />
</intent-filter>
</receiver>
<service android:label="NotifyCenter"
android:name="com.igexin.sdk.SdkMainService"
android:process="PACKAGENAME.pushservice"
android:exported="false">
</service>
<receiver android:name="com.igexin.sdk.SdkReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<service android:name="sdk.download.DownloadService"
android:process="PACKAGENAME.pushservice" />
<receiver android:exported="false" android:name="sdk.download.DownloadReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<provider android:authorities="sdk.download.PACKAGENAME"
android:process="PACKAGENAME.pushservice"
android:name="sdk.download.DownloadProvider"/>

注意:PACKAGENAME替换为项目包名.
其中的UMS_APPKEY、appid、appkey、appsecret是通过Cobub razor获取到的

* 在程序入口Activity添加 如下红色部分
<activity
android:name="com.test.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
4. 初始化SDK
在您应用程序主Activity里导入MessageManager如下所示:
import com.igexin.slavesdk.MessageManager;
然后在您应用程序启动初始化阶段,初始化SDK:
MessageManager.getInstance().initialize(this.getApplicationContext());
该方法必须在Activity或Service类内调用。一般情况下,可以在Activity的onCreate()方法中调用
为保证意外情况导致初始化失败,建议应用程序每次启动时都调用一次该初始化接口。
5. 将 app_download_notification.xml 和 notification.xml (在 客户端/需导入的资源文件夹下)复制到工程res/layout/文件夹中,否则将不支持下载功能 和 自定义通知图标。


MsgReceiver.java 用来获取内容如下
package com.test;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.igexin.sdk.Consts;
public class MsgReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
switch (bundle.getInt(Consts.CMD_ACTION)) {
case Consts.GET_MSG_DATA:
// 获取透传(payload)数据
byte[] payload = bundle.getByteArray("payload");
if (payload != null)
{
String data = new String(payload);
Log.d("GexinSdkDemo", "Got Payload:" + data);
// TODO:接收处理透传(payload)数据
}
break;
default:
break;
}
}
}


6.使用个推推送服务

完成前面步骤后,您即可使用插件的推送服务。

进入插件个推首页,插件会读取所有当前系统中的Android应用列表。

在每个应用后都有推送和透传推送两个操作,用户可以根据自身需要进行选择消息类型。什么是透传推送?

进入推送详细界面,根据要求选择标签或者整个APP推送,填写相关内容并进行推送


7.查看个推推送报告

进入插件中的推送报告模块,用户可以查看用户推送的报告。注:系统只支持30日内推送报告查询服务。用户可通过右上角选择时间段。

推送报告显示了所有激活的APP的推送报告,点击单个APP查看单个应用的推送报告。


8.账户与结算

个推插件按月结算,系统会每个月根据用户上个月的用户所有APP在线用户总数来进行结算。

个推插件的收费是按照当月在线人数结算,与推送次数无关。

为保证推送服务正常进行,请到个人中心账户充值模块预先充值。


什么是透传?

透传消息由推送服务器通过SDK传递给客户端,具体如何处理此消息由用户自己处理。(注:透传内容不支持转义字符)

客户端如何来实现并接收透传消息,请参见《个推SDK集成指南》

为保证推送服务正常进行,请到个人中心账户充值模块预先充值。


如何获取Package Name?

应用标识(Package Name),常以com开头

方法一:

安装并打开 包名检测工具

方法二:

1. 手机上打开你的应用
2. 点击设置 -> 应用程序 -> 管理应用程序 -> 正在运行,在列表中找到你的程序
3. 在进程中可以看到应用的应用标识(Package Name)