您的位置:首页 > 移动开发 > Android开发

Android版添加phonegap--百度云插件教程

2015-12-21 18:02 543 查看
1.下载 百度云推送的SDK包

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

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

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

(1)拷贝资源文件夹res下面的相关图文件和layout文件(这里我们使用默认的相关样式,当然如果自己有能力可以直接写)

(2)拷贝java文件到你的项目中。

(3)PushMessageReceiver.java 这个是用来接受消息的可以使用官方的即可。这里需要把里面的报错的activity名换成自己的当前项目组activity。

(4)Utils.java 是一个用来查询应用的API Key的,可以略加修改直接使用

(5)CustomActivity.java 用来显示通知的Activity,这个就是app收到消息之后点击后的处理程序,这里可以直接修改。

(6)在Pgbaidupush.class里面修改Appkey,从百度开发者中心获取。

4.给当前项目添加权限

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

5.添加配置信息

这里需要特别注意的是在你当前项目的主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” />

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

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

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

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

8.拷贝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_
4000
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;

}

KeyMob支持百度广告、admob广告、广点通、mmedia、inmobi、chartboost、iad、adcolony视频广告等众多流行广告平台。目前是国内注册开发者最多,日广告展示量最大的移动广告平台,稳定的SDK、完美的技术支持和专业的客服都使KeyMob成为国内开发者首选。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: