PhoneGap極光推送 cordova消息推送

前言

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

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

正文

1.cordova建立APP項目

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


具體的一些cordova操做能夠看我以前寫的一篇博客 從這裏飛過去android

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

2.1 申請APP_KEY須要先在極光推送官網註冊,具體流程很少說。

2.2 進入到APP應用建立中心

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

clipboard.png

clipboard.png

clipboard.png

clipboard.png

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

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

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

  • 經過 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_appkeysegmentfault

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

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()結束推送app

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

參考文獻

相關文章
相關標籤/搜索