PhoneGap極光推送 cordova消息推送

前言

說一下寫這篇文章的初衷。之前做過一個APP用到了消息推送,最近這個項目又用到了推送。但是由於兩個項目間隔4個多月,推送集成、使用方式等都忘了,所以當時又去看了以前項目的源碼和一些推送相關的博客,尋找那些蛛絲馬跡。突然覺得這樣很浪費時間,爲何自己不寫篇文章總結一下呢,以後肯定還會用到推送的,下次用的時候再看看這篇文章,思路應該會比較直觀。後來再想想,嗯,對的,寫吧!

PS:這篇文章講是基於cordova環境下的消息推送,如果沒有cordova環境的,請先裝好該環境。

正文

1.cordova創建APP項目

cordova create myAPP com.muzi.test 創建一個文件名爲myAPP,APP包名爲com.muzi.test的項目
cordova platforms add android 將創建的項目加入到Android平臺中


具體的一些cordova操作可以看我之前寫的一篇博客 從這裏飛過去

2.申請消息推送APP_KEY(我消息推送一直用的極光推送)

2.1 申請APP_KEY需要先在極光推送官網註冊,具體流程不多說。

2.2 進入到APP應用創建中心

https://www.jiguang.cn/accoun...

clipboard.png

clipboard.png

clipboard.png

clipboard.png

這裏填入的包名(填入保存之後不能再修改)就是開始cordova創建項目是的包名,兩處包名必須相同,不然不能推送,保存之後可以下載集成好極光推送的demo,也可以下載打包好的測試app進行推送測試。(因爲公司產品特殊,只面相Android用戶,所以對其他平臺的推送使用不是那麼熟悉,這裏就只介紹Android端的使用)

3. 安裝極光推送插件 jpush-phonegap-plugin

進入到剛開始cordova創建的項目文件根目錄,安裝插件,一共有3中方式:

  • 通過 Cordova Plugins 安裝,要求 Cordova CLI 5.0+:
    cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey
  • 或直接通過 url 安裝:
    cordova plugin add https://github.com/jpush/jpush-phonegap-plugin.git --variable APP_KEY=your_jpush_appkey
  • 或下載到本地安裝:

    cordova plugin add Your_Plugin_Path --variable APP_KEY=your_jpush_appkey

安裝插件的時候,注意Jpush和jcore的版本,有些版本不能初始化推送

clipboard.png

clipboard.png

clipboard.png

your_jpush_appkey:在極光推送創建應用時生成的APP_KEY

clipboard.png

4.編碼

4.1 初始化JPush

App啓動時,在deviceready事件回調中調用window.JPush.init()方法初始化,可以調用window.JPush.stopPush()結束推送

document.addEventListener("deviceready",function(){    
    //插件初始化    
    window.JPush.init();
    }, 
    false
);

4.2 極光推送的推送方式

  • 廣播(所有人)
  • 設備標籤(Tag)--可以是單人或者多人
  • 設備別名(Alias)--可以是單人或者多人
  • registration ID(具體某一個)
  • 用戶分羣推送

clipboard.png

4.3 獲取極光推送後臺返回的設備registration ID

這個registration ID是唯一的,項目中接收到這個ID後可以存儲起來,然後發送給服務端,服務端可以根據這個registration ID向指定客戶端(手機)發送推送消息

window.JPush.getRegistrationID(function(rId) {       
        console.log(rId);
      });

4.4 設置設備標籤(Tag)

window.JPush.setTags({ sequence: 1, tags: ['tag1', 'tag2'] },
  (result) => {
    var sequence = result.sequence
    var tags = result.tags  // 數組類型
  }, (error) => {
    var sequence = error.sequence
    var errorCode = error.code
  })

參數說明
sequence: number。用戶自定義的操作序列號, 同操作結果一起返回,用來標識一次操作的唯一性。
tags: Array,標籤數組。

調用這個方法後,會向極光的服務端發送設置的Tag,設置後,會觸發相應的回調函數

4.5 設置設備別名(Alias)

window.JPush.setAlias({ sequence: 1, alias: 'your_alias' },
  (result) => {
    var sequence = result.sequence
    var alias = result.alias
  }, (error) => {
    var sequence = error.sequence
    var errorCode = error.code
  })

參數說明
sequence: number。用戶自定義的操作序列號, 同操作結果一起返回,用來標識一次操作的唯一性。
tags: string

  • 每次調用設置有效的別名將覆蓋之前的設置。
  • 有效的別名組成:字母(區分大小寫)、數字、下劃線、漢字、特殊字符@!#$&*+=.|。
  • 限制:alias 命名長度限制爲 40 字節(判斷長度需採用 UTF-8 編碼)。

4.6 獲取推送消息內容

當客戶端接收到推送消息時,會觸發這個方法,會返回一個json結構的數據包,在裏面可以取到需要的數據

// 接收到推送消息回調
      window.plugins.jPushPlugin.receiveNotificationInAndroidCallback = function(
        data
      ) {
        try {          
          console.log(
            "JPushPlugin:receiveNotificationInAndroidCallback:",
            data
          );
        } catch (exception) {
          console.log("JPushPlugin:pushCallback ", exception);
        }
      };

4.7 點擊通知欄的推送消息

點擊通知欄的消息時,會觸發這個方法,並返回包含具體推送內容的json數據,可以根據裏面的內容,來做相應的事件處理,比如說需要點擊通知欄消息,跳轉到相應頁面做處理

 //點擊通知欄的回調,在這裏編寫特定邏輯
       window.plugins.jPushPlugin.openNotificationInAndroidCallback = function(
         data
       ) {
         try {
           //  location.href = 'index.html';           
           console.log(data);
         } catch (error) {}
       };

4.8 更多推送相關的api,可以查看phonegap插件官網

4.9 推送測試

在初始化極光推送window.JPush.init()後,當第一次運行APP時會生成了registration ID,或者成功設置了標籤(Tag),別名(Alias),可以在極光推送的官網上,進行消息推送測試,如下圖:

clipboard.png

clipboard.png

當推送初消息後,一會兒就會在手機上接收到推送信息(有時可能會有幾秒到10多秒的延遲,一般情況下是秒到)

廢話

以上就是我使用jpush-phonegap-plugin插件推送的一些經驗,希望能夠幫助到需要的道友。如果有錯誤或不足的地方,歡迎各位道友指出,如果各位覺得滿意,歡迎點贊和收藏。

clipboard.png

參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章