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_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成爲國內開發者首選。
html