1. 程式人生 > >cordova極光推送外掛使用

cordova極光推送外掛使用

首先是在極光官網註冊登入賬號,然後建立推送應用,建立完應用之後,點選開啟應用,設定應用的包名,儲存;

然後回到應用主介面,看到AppKey,以及MasterSecret,這時候MasterSecret應該可以點選查看了。AppKey是新增外掛的時候,需要用到的,然後在伺服器端給移動端傳送推送的時候,需要用到AppKey以及MasterSecret。

接下來是新增外掛,使用git安裝了之後,應用一直閃退,報錯找不到DataProvider,我最後是通過普通的安裝方式安裝的:

cordova pluginadd jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey

外掛安裝成功之後,可以直接跑github專案中example資料夾下的程式碼,就是直接把example目錄下的index.html、css以及js拷貝到專案根目錄www資料夾下,然後cordova run android,如果看到這個介面,並且已經獲取到registrationId,就表示已經成功搭建好推送環境了,這個是android示例:


在IOS上測試的時候,安裝完外掛之後,不要忘了開啟IOS工程,然後Capabilities設定中開啟Push Notification開關以及Background Mode開關,在Background Mode中還要勾選remote notification選項;



最後還要設定APP_KEY,這個一般在Resource目錄下,編輯JPushConfig.plist檔案,填寫AppKey和Channel,AppKey就是極光官網應用設定給的AppKey,channel就填IOS即可:


注意的是,測試最好使用真機。

安裝完外掛之後,在極光推送的管理介面,輸入要推送的訊息,點擊發送,之後如果沒有在頁面上顯示錯誤,而且裝置接受到推送訊息,表明已經可以成功接收到推送訊息:


開啟index.html,我從裡面拿到了一些關鍵初始化程式碼:

let onDeviceReady = function () {
document.addEventListener("jpush.receiveRegistrationId"
, function (event) { console.log("receiveRegistrationId" + JSON.stringify(event)); }, false); initJPush(); }; function initJPush() { if ('JPush' in window) { console.log('initialize JPush...'); try { window.JPush.init(); window.JPush.setDebugMode(true); window.setTimeout(() => { window.JPush.getRegistrationID((data) => { console.log(data); console.log('JPush initialize successful...'); }); }, 1000); if (device.platform != "Android") { window.JPush.setApplicationIconBadgeNumber(0); } } catch (exception) { console.log(exception); } } else { console.error('JPush is not exist...'); } } document.addEventListener("deviceready", onDeviceReady, false);

然後是服務端環境搭建,首先是新增依賴:

<!--極光推送相關-->
<dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jpush-client</artifactId>
    <version>3.3.3</version>
</dependency>
<dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jiguang-common</artifactId>
    <version>1.0.8</version>
</dependency>
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.6.Final</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.3</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>
</dependency>
<!-- For log4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

然後編寫一條請求,在請求中傳送推送訊息:

package com.martsforever.core.template.jpush;
import cn.jiguang.common.ClientConfig;
import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
import com.martsforever.core.global.RequestManage;
import org.springframework.web.bind.annotation.*;
import java.util.Collection;
import java.util.Map;
import static javax.accessibility.AccessibleRole.ALERT;
@RestController
@RequestMapping("push")
public class JPushController {
private static String MASTER_SECRET = "5a1c4d4abb80ac481a44257a";
    private static String APP_KEY = "41259c975595d3c56c9e74ef";
    @PostMapping("sendAll")
public static Map<String, Object> sendAll(@RequestBody PushMessage pushMessage) {
JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());
// For push, all you need do is to build PushPayload object.
PushPayload payload = buildPushObject_all_all_alert(pushMessage.getMessage());
        try {
PushResult result = jpushClient.sendPush(payload);
System.out.println("Got result - " + result);
} catch (APIConnectionException e) {
// Connection error, should retry later
System.out.println("Connection error, should retry later" + e.getMessage());
} catch (APIRequestException e) {
// Should review the error, and fix the request
System.out.println("Should review the error, and fix the request" + e.getErrorMessage());
System.out.println("HTTP Status: " + e.getStatus());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Error Message: " + e.getErrorMessage());
}
return RequestManage.success(pushMessage);
}
public static PushPayload buildPushObject_all_all_alert(String msg) {
return PushPayload.alertAll(msg);
}
//發給一個客戶端
public static PushPayload buildPushObject_all_registrationid_alert() {
return PushPayload.newBuilder()
.setPlatform(Platform.all()) //設定平臺-所有平臺
.setAudience(Audience.registrationId("")) //設定受眾-極光註冊id
.setNotification(Notification.alert(ALERT)) //設定通知 - 訊息
.build();
}
//多個客戶端
public static PushPayload buildPushObject_all_registrationids_alert(Collection<String> strings) {
return PushPayload.newBuilder()
.setPlatform(Platform.all()) //設定平臺-所有平臺
.setAudience(Audience.registrationId(strings)) //設定受眾-極光註冊id-多個客戶端
.setNotification(Notification.alert(ALERT)) //設定通知-推送資訊
.build();
}
}

當請求這條請求的時候,就會把請求中的引數作為訊息傳送到所有的客戶端,如果客戶端可以接收到推送訊息,證明伺服器端環境搭建也完成了。我這裡不知道是不是本地除錯的原因還是其他原因,通過伺服器端傳送推送訊息有點慢,可能因為我不是付費使用者……,從傳送訊息到接收到推送訊息,中間大概隔了一分鐘的時間,同學們需要耐心等待一下。



相關推薦

cordova極光外掛使用

首先是在極光官網註冊登入賬號,然後建立推送應用,建立完應用之後,點選開啟應用,設定應用的包名,儲存;然後回到應用主介面,看到AppKey,以及MasterSecret,這時候MasterSecret應該可以點選查看了。AppKey是新增外掛的時候,需要用到的,然後在伺服器端給

ionic 之cordova 極光jpush和百度定位外掛結合使用之定位失效問題解決辦法

之前專案已經裝了cordova的百度定位外掛,曾經出現過定位失敗問題,那是由於專案上傳svn再checkout下來的話會丟失.so檔案。只需把.so檔案補齊就OK了。但是最近由於專案需要推送訊息功能,查了下,使用了cordova集合的極光推送jpush外掛,add了以後,就出現了我百思不得其解的bu

ionic整合極光外掛-iOS

DEMO地址https://github.com/JsonJieLi/cordova-jpushDemo/tree/master 1.首先建立一個ionic的專案 前面有介紹不詳細說了也可以參考官方網

ionic3+cordova 極光 記錄

本人小白  由於公司專案 需要到推送通知   於是決定選擇極光推送    以下是  有的程式碼是擷取的別人的 記錄如下 : 申請應用  填寫你專案應用的包名  在你專案的config.xml裡獲取到APPKey  記住! 然後安裝官方的cordova外掛 co

ionic應用整合極光外掛jpush

推送解決方案目前還是比較多的,有百度推送,個推,友盟,騰訊信鴿等,在實際應用中,我覺得極光推送這種免費的解決方案還是比較好的, 文件,推送到達效果,客服等都還算不錯,所以這裡極光官方外掛整合到專案上的

關於ionic3 + cordova 加入極光的步驟

極光推送官方已提供相關的外掛地址:https://github.com/jpush/jpush-phonegap-plugin官方已說明此外掛從3.4.0起,開始支援cordova-android 7.0 ,並且不能向下相容。那麼低於7.0以下,都需要使用舊版本外掛。否則會出

極光---安卓Demo

ges 網絡 同名 roi sta 復制 ava tro return 對於一個一直幹.net的程序媛來說。冷不丁的讓小編幹安卓,那種感覺就好似小狗狗咬小刺猬一樣,不知道從哪兒開始下手,對於小編來說。既是挑戰更是機遇,由於知識都是相通的。再者來說,在小編的

關於極光Jpush的demo

安卓 lips 介紹 gis 表示 request ice 通知欄 efault 關於極光推送Jpush   推送是手機app必不可少的一樣功能,這次由於公司項目需要研究了一下。由於推送一般寫於服務端,所以對於不會Android的javaweb程序員要寫出一個完整的demo

C#簡單的JPush(極光) API實現功能(來自mojocube的博客)

size 返回 log c# api live str -s 周期 APP推送功能大家應該都了解了,目前主要的有百度、極光等幾家公司提供推送服務,下面說一下極光推送API的簡單實現推送通知功能。 註冊完極光的賬號後,就可以創建應用,建好後會得到AppKey和Master

極光的代碼實現

分享 orm result bsp library not etop tags alias 一:去官網下載SDK或者直接在maven項目中進行相應配置 <dependencies> <dependency> <grou

項目實戰:iOS極光集成(30分鐘搞定)

adg append ati 技術分享 tro markdown ocs sym xcode 推送有非常多,如個推、友盟、融雲和極光等等。在這裏就講下怎樣使用極光推送。主要內容是將官方文檔資料詳細匯總並一步一步集成到項目中,您也能夠直接去官方文檔閱

極光

流量 管理 做了 無法打開 自己 android 極光推送 輕量級 並發 定義:極光推送(JPush)是獨立的第三方雲推送平臺,致力於為全球移動應用開發者提供專業、高效的移動消息推送服務(是一個面向普通開發者開放的,免費的第三方消息推送服務)。 極光推送服務優勢:     

Ionic極光的使用:

官網 實時 his 關系 gin icp 顯示 代碼 下載 1.到極光官網註冊賬號; 2.應用設置中:   填寫應用名稱:   應用圖標: 3. 保存上面的設置之後,到了推送設置了: 4.下載插件: 如何遇到下載報錯,可換種方法解決:切換到cordova插件目

android 極光 聲音與振動 的關閉和開啟

fff getc 用法 koa pub tar brush asi drawable   前言:最近剛好在寫一些推送方面的東西,又是新手,不斷在網上找資料,很少,不過還是找到了一些,反正百度我是再也不想百度了,谷歌一下子就能找到想要的。   廢話不多說。  

極光使用

極光 推送使用 註意事項安卓手機如果 關閉“獲取meid imsi權限”則app 中極光sdk 無法生存 唯一 tag解決辦法:安卓判斷如果生成失敗,可以自己生成比如: md5(機型+時間戳)這樣的串作為 tag本文出自 “水滴石穿” 博客,請務必保留此出處http://liangge.blog.51

極光工具類

tle 分辨 空字符 客戶端 配置 技術 連接錯誤 event ast 之前項目有用到需要把數據推送到app端 采用的是極光推送 特此把工具類和pom.xml需要的jar整理如下 pom.xml需要jar如下 <!-- 極光推送 --&

極光_總結_01_Java實現極光

-type blank 經驗 內容 .cn util post org header 一、代碼實現 1.配置類—Env.java package com.ray.jpush.config; /**@desc : 極光推送接入配置 *

點擊極光,實現跳轉

定義 ctf 每次 con 消息 center 不同的 tno handler   說實話,極光推送接觸過好幾遍了,但是每次開發都是實現簡單的展示功能,最近接手的一款app要求只在後臺展示,還要實現點擊通知欄跳轉到相應的詳情界面,於是便以為很簡單的開始了,而且還很嗨的那種,

極光 標簽和別名設置說明

iap 方法 callbacks CA sset cto 後臺 spa ID 1.獲取別名:在極光這個回調方法裏面 得到 registrationID 並存儲起來 登錄的時候會用, /** 極光推送 回調 */ - (void)application:(UIAppli

極光簡單配置

平臺 ring else shc 代碼 手機號 jpush class func 0、首先去極光申請app應用,免費的! 1、composer引入極光sdk。PS:盡量使用composer,不然可能會有各種坑爹的不能自動加載問題等... 2、引入模塊類 3、直接擼代碼 p