欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

phoengap-百度云推送-插件-android

Android开发 夜阑小雨 4543℃ 0评论

phoengap-百度云推送-插件-android

这里查看phonegap百度云推送ios的插件:->phoengap-百度云推送-推送插件-ios推送 

目前已经可以实现的功能包括:【已经升级对最新版本的百度推送sdk】

获取用户uid,实现单波推送,推送富媒体,推送控制,设置tag,查看历史通知,消息穿透接收,群发,单发,tag推送,html页面接收消息和通知。 支持推送,点击页面跳转。

该插件是基于百度云推送而定制开发。

需要您到百度云推送网站去注册申请百度云推送的appkey。

插件包里面有2个地方需要你修改为自己的程序再百度云推送网站申请的appkey。

如何申请可以去百度开发者中心查看。

1.下载 百度云推送的 sdk包

2.解压sdk包把相应的lib文件夹下的库文件拷贝到你当前项目的lib文件夹下面。

并将该库文件引入到你的项目中。jar包添加到工程的Java Build Path。

3.下载百度推送提供的demo包解压,复制相应的文件到你当前的项目中。

  1. 拷贝资源文件夹res下面的相关图文件和layout文件(这里我们使用默认的相关样式,当然如果自己有能力可以直接写)
  2. 拷贝java文件到你的项目中。
    • PushMessageReceiver.java 这个是用来接受消息的可以使用官方的即可。这里需要把里面的报错的activity名换成自己的当前项目组activity。
    • Utils.java 是一个用来查询应用的API Key的,可以略加修改直接使用
    • CustomActivity.java 用来显示通知的Activity,这个就是app收到消息之后点击后的处理程序,这里可以直接修改。
    • 在Pgbaidupush.class里面修改Appkey,从百度开发者中心获取。
  3. 给当前项目添加权限

<!– 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.WRITE_SETTINGS” />
<uses-permission android:name=”android.permission.VIBRATE” />
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<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” />

<!– 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” />

4.添加配置信息

这里需要特别注意的是在你当前项目的主activity下面加上

android:launchMode=”singleTask”

这是为了防止程序的activity重复启动。

 

添加自定义消息处理activity。

<activity
android:name=”com.××××.×××××.CustomActivity”
android:configChanges=”orientation|keyboardHidden”
android:label=”消息中心” >
</activity>

富媒体的配置

<!– push service rich media display –>
<activity
android:name=”com.baidu.android.pushservice.richmedia.MediaViewActivity”
android:configChanges=”orientation|keyboardHidden”
android:label=”MediaViewActivity” >
</activity>
<activity
android:name=”com.baidu.android.pushservice.richmedia.MediaListActivity”
android:configChanges=”orientation|keyboardHidden”
android:label=”MediaListActivity”
android:launchMode=”singleTask” >
</activity>

接受推送的客户端处理程序

<!– push service client –>
<receiver android:name=”com.××××.××××.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 service –>
<receiver 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>

<receiver android:name=”com.baidu.android.pushservice.RegistrationReceiver”
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>
<service
android:name=”com.baidu.android.pushservice.PushService”
android:exported=”true”
android:process=”:bdservice_v1″ />
<meta-data android:name=”api_key” android:value=”您的apikey” />

注意文章里面的×××是根据你项目情况来写的包名。

4. 添加Pgbaidupush。java插件到你项目。在java文件里配置你的apikey。

5.在config.xml文件里面配置你的插件信息。

<plugin name=”Pgbaidupush” value=”com.×××.×××××.Pgbaidupush”/>

===================【3.x后添加插件】==================================

<feature name=”Pgbaidupush”>
<param name=”android-package” value=”com.xhuayi.dgoula.Pgbaidupush” />
</feature>

 

6.拷贝Pgbaidupush.js文件到你的www包里面,并引入到你的html页面里面。

在页面内调用以下方法:

初始化推送:

 function startpush() {

window.plugins.Pgbaidupush.pushStart(
function(success){alert(“success”);},
function(fail){alert(“encoding failed: ” + fail);}
);
}

这样在app启动之后就会注册该推送id,并开始监听该app。

 

停止推送:

   function pushstop() {
window.plugins.Pgbaidupush.stopWork(
function(success) { alert(success);},
function(fail){alert(“encoding failed: ” + fail);}
);

恢复推送:

    function pushresume() {
window.plugins.Pgbaidupush.resumeWork(
function(success) { alert(success);},
function(fail){alert(“encoding failed: ” + fail);}
);
}

设置标签:

    function settags() {
var tag = “aa”;
window.plugins.Pgbaidupush.setTags(
tag,
function(success) { alert(success);},
function(fail){alert(“encoding failed: ” + fail);}
);
}

删除标签:

    function deltags() {
var tag = “aaa”;
window.plugins.Pgbaidupush.delTags(
tag,
function(success) {alert(success);},
function(fail){alert(“encoding failed: ” + fail);}
);
}

查看富媒体库:

function pushRichMedia() {
window.plugins.Pgbaidupush.RichMedia(
function(success) { alert(success);},
function(fail){alert(“encoding failed: ” + fail);}
);
}

 

查看历史消息:

 function pushmsglist() {
window.plugins.Pgbaidupush.Msglist(
function(success) { alert(success);},
function(fail){alert(“encoding failed: ” + fail);}
);
}

 

获取UID 用来单播推送:

function Uid(){
window.plugins.Pgbaidupush.Uid(
function(success) {
var uid = JSON.parse(success)
var channel_id = uid.response_params.channel_id;
var user_id = uid.response_params.user_id;
$(“#uid”).html(“channel_id:”+channel_id+”<br/>user_id:”+user_id);
},
function(fail){alert(“encoding failed: ” + fail);}
);
}

 

//接收穿透的消息

function callPushmsg(json){

var message=json.message;
document.getElementById(“msg”).innerHTML=message;
}

//接收接收通知

function callPushNotification(json){
var title=json.title;
var content=json.content;
document.getElementById(“notice”).innerHTML=”title->”+title+”<br>”+”content–>”+content;
}

通过以上方法就可以完美的实现百度云推送功能。

至于如何对推送的数据和信息的业务处理可以根据app需求来完善。

插件下载:百度推送-phonegap-插件

服务器端 推送程序:baidu_push_php

转载请注明:夜阑小雨 » phoengap-百度云推送-插件-android

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 谢谢分享! 楼主太给力了
    leon2013-10-01 19:28 回复