騰訊信鴿推送 for Cordova
源代码名称:xgpush-cordovagit://www.github.com/ETENG-OSP/xgpush-cordova.gitGit Clone代码到本地: git clone http://www.github.com/ETENG-OSP/xgpush-cordovaSubversion代码到本地: $ svn co --depth empty http://www.github.com/ETENG-OSP/xgpush-cordova
Checked out revision 1.
$ cd repo
$ svn up trunk
XGPush 騰訊信鴿推送 for Cordova[170109] 升級 SDK
[160119] 升級 SDK
[151229] iOS SDK 版本更新至 2.4.5,重新規劃 SDK 存儲路徑
[151015] 慶祝 20 Stars,SDK 升級SDK versionandroidXg-Push-SDK-Android-2.47
iosXg-Push-SDK-iOS-2.5.0
Cordova 版本:3.x / 4.x / 5.x
這個插件支持通知與消息,同時針對混合應用的生命周期進行了處理,保證消息的抵達。
安裝方法
打開控制台,進入 Cordova 項目目錄,輸入:cordova plugin add https://github.com/ETENG-OSP/xgpush-cordova --save
--variable ACCESS_ID="Your Access ID"
--variable ACCESS_KEY="Your Access Key"
使用方法
安裝完成即可接收推送通知。這種用法適合於僅需要偶爾向全部用戶發信息的情況。
如果需要精確控制,參考以下 API 和事件。
APIxgpush.registerPush([alias]): 註冊設備
這個方法可以手動註冊設備。如果需要為接收推送的設備取別名以便有針對性的通知,需要在 deviceready 后註冊別名:// 這裡的別名是可選的,不傳代表沒用別名xgpush.registerPush('tom');
如果需要結果,可以用 Promise 的形式獲取:xgpush.registerPush('tom').then(function(results) {
// results 里有 flag 和 dataalert('設備的 token 是: '+results.data);
});
可以重複註冊,下一個別名會替換上一個別名。
xgpush.unregisterPush(): 註銷設備
如果不想接收推送,使用 xgpush.unregisterPush:xgpush.unregisterPush()
這個方法也返回 Promise。
事件textmessage: 文本消息
如果需要接受消息,直接在代碼里處理,可以監聽 textmessage 事件:xgpush.on('textmessage', function(e) {
// 事件處理方法alert(JSON.stringify(arguments, null, 2));
});
事件採用了與 Node.js 事件兼容的 eventemitter3。具體方法參考:https://nodejs.org/api/events.html
用例
如果需要推送一條信息,用戶在點擊該信息後進入應用,同時觸發程序邏輯。可以發送一個帶有自定義 URL scheme 的通知。
注意事項
armv7s 與 xcode 6
如果執行 cordova build --device --release 不成功,請去掉 build.js 里的 armv7s。
不同平台 so 文件
這個插件內置了 armeabi 的庫文件。如果目標平台不是 armeabi,請到 http://xg.qq.com/xg/help/ctr_help/download 下載對應版本的 SDK。
以下引用 SDK 中的說明:
信鴿的 .so 支持所有的 android 平台,但考慮到平時接入一般只需要 armeabi 平台,因此 libs 目錄只提供該平台的 .so,其它平台可在上層目錄的 All-Platform-SO 找到。
嵌入 .so 可能存在的問題:
so 文件與 jar 包不匹配。解決辦法:在更新 jar 時同時更新對應的 so 文件;當前工程已有某些平台的 so,如只有 armeabi 平台,卻添加信鴿所有平台導致打包時異常。解決辦法:只添加當前工程已有的平台的信鴿 so 文件。具體可參考網上或以下示例:
```
armeabi !此平台既有當前存在so又有信鴿,正常!
--libCurrent.so 當前工程已有so
--libtpnsSecurity.so 信鴿
--libtpnsWatchdog.so 信鴿
armeabi-v7a !此平台既有當前存在so又有信鴿,正常!
--libCurrent.so 當前工程已有so
--libtpnsSecurity.so 信鴿
--libtpnsWatchdog.so 信鴿
mips !!!錯誤,由於此平台只有信鴿,必須刪掉mips目錄!!!
--libtpnsSecurity.so 信鴿
--libtpnsWatchdog.so 信鴿
x86 !!!錯誤,由於此平台只有信鴿,必須刪掉x86目錄!!!
--libtpnsSecurity.so 信鴿
--libtpnsWatchdog.so 信鴿
```若當前工程不存在 so 文件。解決辦法:可複製所有信鴿平台或只複製 armeabi 平台。
相关文章