phoengap百度云推送插件(android)

来源:互联网 发布:穆雅斓的淘宝店斌斌 编辑:程序博客网 时间:2024/06/06 15:44

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

需要您到百度云推送网站去注册申请百度云推送的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收到消息之后点击后的处理程序,这里可以直接修改。
  3. 给当前项目添加权限
  4. <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。

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

富媒体的配置

<!– push service rich media display –><activityandroid:name=”com.baidu.android.pushservice.richmedia.MediaViewActivity”android:configChanges=”orientation|keyboardHidden”android:label=”MediaViewActivity” ></activity><activityandroid: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><serviceandroid: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”/>


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);});}

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

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

0 0
原创粉丝点击