如何使用百度云 API 推送富媒体微信消息推送api

百度Push(云推送)使用基础篇_脚本百事通
百度Push(云推送)使用基础篇
现在推送服务已经成为了一个应用的刚需,像“新版本提示”、“新活动提示”、“消息提醒”等功能基本上都是使用Push来实现,但是Push在大部分应用中并不能充当主营的业务,往往作为丰富应用功能,方便云端向客服端推送实时消息的角色。本人觉得这类服务应该足够简单,让开发者花很小的代价的使用这类服务,并能够很快的集成到自己的应用中,在这里为大家推荐一个Push服务—–百度云推送(Push)。
百度云推送(push)是百度云平台向开发者提供的消息推送服务;通过利用云端与客户端之间建立稳定、可靠的长连接来为开发者提供向客户端应用推送实时消息服务。
本人通过自身的实践,很快将百度云服务(Push)集成到自己的App中,现将集成步骤分享给大家。
百度云服务(Push)提供两种初始化的方法,分别是:
无账号初始化
开发者无需接入百度账户体系, 使用无账号初始化Push
百度帐号初始化
使用百度帐号来初始化Push服务
这两种方法都需要以API Key(百度开发者创建的应用程序的唯一标识)作为参数,所以我们首先需要成为百度开发者并创建应用获取API Key,步骤如下:
(1)登陆 ,如果不是百度开发者,需要先注册成为百度开发者,如果已经是百度开发者请直接到步骤(2)
(3)选择“移动客服端”,并输入“应用名称”,点击“确定”
(4)获取API Key
(1)添加pushservice.jar到工程中libs目录下,并将该jar包添加到工程的Java Build Path
(2)修改AndroidManifest.xml
声明运行Push的权限
&!-- Push service 运行需要的权限 --&
&uses-permission android:name="android.permission.INTERNET" /&
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&
&uses-permission android:name="android.permission.BROADCAST_STICKY" /&
&uses-permission android:name="android.permission.WRITE_SETTINGS" /&
&uses-permission android:name="android.permission.VIBRATE" /&
&!-- for log. --&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" /&
&uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /&
&uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /&
&uses-permission android:name="android.permission.DISABLE_KEYGUARD" /&
&uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&
注册消息接收receiver
&receiver android:name="com.baidu.pushdemo.PushMessageReceiver" &
&intent-filter&
&!-- 接收push消息 --&
&action android:name="com.baidu.android.pushservice.action.MESSAGE" /&
&!-- 接收bind,unbind,fetch,delete等反馈消息 --&
&action android:name="com.baidu.android.pushservice.action.RECEIVE" /&
&action android:name="com.baidu.android.pushservice.action.notification.CLICK" /&
&/intent-filter&
&/receiver&
添加Push服务端配置
&!-- push service --&
android:name="com.baidu.android.pushservice.PushServiceReceiver"
android:process=":bdservice_v1" &
&intent-filter&
&action android:name="android.intent.action.BOOT_COMPLETED" /&
&action android:name="android.net.conn.CONNECTIVITY_CHANGE" /&
&action android:name="com.baidu.android.pushservice.action.notification.SHOW" /&
&action android:name="com.baidu.android.pushservice.action.media.CLICK" /&
&/intent-filter&
&/receiver&
android:name="com.baidu.android.pushservice.RegistratonReceiver"
android:process=":bdservice_v1" &
&intent-filter&
&action android:name="com.baidu.android.pushservice.action.METHOD" /&
&action android:name="com.baidu.android.pushservice.action.BIND_SYNC" /&
&/intent-filter&
&intent-filter&
&action android:name="android.intent.action.PACKAGE_REMOVED" /&
&data android:scheme="package" /&
&/intent-filter&
&/receiver&
android:name="com.baidu.android.pushservice.PushService"
android:exported="true"
android:process=":bdservice_v1" /&
&!-- push service end --&
添加富媒体显示的Activity
&!-- push service rich media display --&
android:name="com.baidu.android.pushservice.richmedia.MediaViewActivity"
android:configChanges="orientation|keyboardHidden"
android:label="MediaViewActivity" &
&/activity&
android:name="com.baidu.android.pushservice.richmedia.MediaListActivity"
android:configChanges="orientation|keyboardHidden"
android:label="MediaListActivity"
android:launchMode="singleTask" &
&/activity&
(3)在工程src/下创建并编写“PushMessageReceiver.java”文件,完成push消息接收和处理功能
public class PushMessageReceiver extends BroadcastReceiver {
public void onReceive(final Context context, Intent intent) {
if (intent.getAction().equals(PushConstants.ACTION_MESSAGE)) {
//获取Push消息内容
String message = intent.getExtras().getString(
PushConstants.EXTRA_PUSH_MESSAGE_STRING);
} else if (intent.getAction().equals(PushConstants.ACTION_RECEIVE)) {
//处理bind等方法的返回数据
//注:PushManager.startWork()的返回值通过PushConstants.METHOD_BIND得到
//获取调用的方法
final String method = intent.getStringExtra(PushConstants.EXTRA_METHOD);
//方法返回错误码,您需要恰当处理。比如,方法为bind时,若失败,需要重新bind,即重新调用startWork
final int errorCode = intent.getIntExtra(PushConstants.EXTRA_ERROR_CODE,PushConstants.ERROR_SUCCESS);
//返回Push消息的内容
final String content = new String(intent.getByteArrayExtra(PushConstants.EXTRA_CONTENT));
Toast.makeText(context,
"method : " + method + "\n result: " + errorCode
+ "\n content = " + content, Toast.LENGTH_SHORT).show();
} else if (intent.getAction().equals(PushConstants.ACTION_RECEIVER_NOTIFICATION_CLICK)) {
//用户点击通知后的处理
Intent aIntent = new Intent();
aIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//当用户点击通知后启动显示信息的Activity
aIntent.setClass(context, DisplayMessage.class);
//Push信息的title
String title = intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_TITLE);
aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_TITLE, title);
//Push信息的content
String content = intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT);
aIntent.putExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT, content);
context.startActivity(aIntent);
(4)在src/下创建一个用户点击通知信息后的响应Activity,本实例中是显示Push信息的Activity,名为“DisplayMessage.java”
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_message);
message_title = (TextView)findViewById(R.id.message_tile);
message_content = (TextView)findViewById(R.id.message_content);
//获取push消息的title和content
Intent intent = getIntent();
//获取信息的title
String title = intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_TITLE);
//获取信息的content
String content = intent.getStringExtra(PushConstants.EXTRA_NOTIFICATION_CONTENT);
//显示信息的title和content
message_title.setText(title);
message_content.setText(content);
(5)在需要启动Push服务的Activity中调用PushManager.startWork()启动Push服务,本实例通过点击button启动Push服务
public class MainActivity extends Activity {
private Button ak_
//开发者中心获取的API Key
private static final String API_KEY = "";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ak_init = (Button)findViewById(R.id.ak_init);
ak_init.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
// startWork()完成Push服务的初始化,并且完成自动bind工作
PushManager.startWork(getApplicationContext(),
PushConstants.LOGIN_TYPE_API_KEY, API_KEY);
到此,客户端上的Push就已经完成了。
客户端已经开发完成,那么服务器端需要把信息推送到客户端的话就需要开发服务端,而百度云推送帮我们解决了开发服务器端的问题,在百度开发者中心上直接提供推送后台,使推送更为简单,下面介绍如何使用Push推送后台。
(1)回到刚刚创建完成的页面,点击“云推送(Push)”
(2)填写创建的Android工程的包名后点击“保存”
(3)点击“推送消息”,根据实际的情况选择推送类型
如果我们推送的是“富媒体”类型的消息的话,那么需要在Android工程中加入显示富媒体消息的样式,步骤如下:
(1)将下面三个文件放在/res/layout/下
(2)将下面的图片放在/res/drawable-hdpi/下
如果是想直接体验可以
其它技术资料
如果您喜欢IT行业或者对IT行业感兴趣,想开拓技术视野,欢迎加入本站官方QQ群:,在群里认识新朋友和交流技术^_^
Powered by && & 2013 &&&百度云推送_推送_推送、地图、工具、基站_API服务_API Store
百度云推送
百度云推送
所属分类:
更新时间:
云推送(Push)是百度开放云向开发者提供的消息推送服务;通过利用云端与客户端之间建立稳定、可靠的长连接来为开发者提供向客户端应用推送实时消息服务。
百度云推送服务支持三种推送类型:通知、消息及富媒体;支持向所有用户、根据标签分类向特定用户群体、向单个用户和基于地理位置推送消息;支持更多自定义功能(如自定义内容、后续行为、样式模板等);提供用户信息及通知消息统计信息,方便开发者进行后续开发及运营。
Android集成快速入门:
1、注册百度账号,并成为百度开发者;
2、创建应用,获取 API Key 及 Secret Key,请参考查看应用密钥;
3、下载应用示例;
4、把示例(Android 项目)导入 Eclipse 工程;
5、运行示例应用;
6、登录管理控制台发送通知;
7、手机端接收通知。
IOS SDK集成,快速体验Demo Push:
1、用Xcode打开发布包内部的PushDemo工程;
2、修改工程plist配置文件identifier:PushDemo-Info.plist =& Bundle identifier的值改为您应用的Provisioning Profile对应的identifier;
3、修改BPushConfig.plist中的API_KEY值,为您在百度开发者中心申请的应用的api key;
4、在设备上运行PushDemo后,点击”Bind”按钮。如果Bind成功,屏幕上方将展现服务端返回的app id、channel id和user id。屏幕下方显示服务端返回的完整结果;
5、按照 推送消息 章节中描述的方法,设置userid和channelid为第4步中在设备上获取的相应值,进行推送,端上将收到推送通知。
开发工具与文档欢迎访问&&我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。
&& , && 正文
版权所有,转载本网站文章时请保留此信息。
收藏和分享:
所在分类:
您必须才能发表评论。
热门图文推荐}

我要回帖

更多关于 微信主动推送消息 api 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信