jpush java api_JPush極光推送Java服務器端API

產品功能說明

極光推送(JPush)是一個端到端的推送服務,使得服務器端消息能夠及時地推送到終端用戶手機上,讓開發者積極地保持與用戶的連接,從而提高用戶活躍度、提高應用的留存率。極光推送客戶端支持 Android, iOS 兩個平台。

本 Android SDK 方便開發者基於 JPush 來快捷地為 Android App 增加推送功能。

主要功能

保持與服務器的長連接,以便消息能夠即時推送到達客戶端

接收通知與自定義消息,並向開發者App 傳遞相關信息

主要特點

客戶端維持連接占用資源少、耗電低

SDK豐富的接口,可定制通知欄提示樣式

服務器大容量、穩定

jpush-sdk_v1.x.y.zip 集成壓縮包內容

AndoridManifest.xml

客戶端嵌入SDK參考的配置文件

libs/jpush-sdk-release1.x.y.jar

SDK Java 開發包

libs/armeabi/libjpush.so

SDK native 開發包

example

是一個完整的 Android 項目,通過這個演示了 JPush SDK 的基本用法,可以用來做參考。

Android SDK 版本

目前SDK只支持Android 2.1或以上版本的手機系統。

SDK集成步驟

1、導入 SDK 開發包到你自己的應用程序項目

解壓縮 jpush-sdk_v1.x.y.zip 集成壓縮包

復制 libs/jpush-sdk-release1.x.y.jar 到工程 libs/ 目錄下

復制 libs/armeabi/libjpush.so 到工程 libs/armeabi 目錄下d26e0fe5e5b6d4efdd6d05c1aa2a02d7.jpe

如果您的項目有 libs/armeabi-v7a 這個目錄,請把 libjpush.so 也復制一份到這個目錄。

2、配置 AndroidManifest.xml

根據 SDK 壓縮包里的 AndroidManifest.xml 樣例文件,來配置應用程序項目的 AndroidManifest.xml 。

主要步驟為:

復制備注為 "Required" 的部分

將備注為替換包名的部分,替換為當前應用程序的包名

將AppKey替換為在Portal上注冊該應用的的Key,例如(9fed5bcb7b9b87413678c407)

3、添加代碼

JPush SDK 提供的 API 接口,都主要集中在 cn.jpush.android.api.JPushInterface 類里。

基礎 API

init 初始化SDK

setDebugMode 設置調試模式

調用示例代碼(參考 example 項目)

init 只需要在應用程序啟動時調用一次該 API 即可。

以下代碼定制一個本應用程序 Application 類。需要在 AndoridManifest.xml 里配置。請參考上面 AndroidManifest.xml 片斷,或者 example 項目。

4、測試確認

確認所需的權限都已經添加。如果必須的權限未添加,日志會提示錯誤。

確認 AppKey(在Portal上生成的)已經正確的寫入 Androidmanifest.xml 。

確認在程序啟動時候調用了init(context) 接口

確認測試手機(或者模擬器)已成功連入網絡

客戶端調用 init 后不久,如果一切正常,應有登錄成功的日志信息

啟動應用程序,在 Portal 上向應用程序發送自定義消息或者通知欄提示。詳情請參考管理Portal。

在幾秒內,客戶端應可收到下發的通知或者正定義消息

如果 SDK 工作正常,則日志信息會如下圖所示:

aHR0cDovL2RvY3MuanB1c2guY24vZG93bmxvYWQvYXR0YWNobWVudHMvNTU3MjE0L2pwdXNoLmpwZz92ZXJzaW9uPTImbW9kaWZpY2F0aW9uRGF0ZT0xMzUwMDIxMDExMDAw

如圖所示,客戶端啟動分為 4 步:

檢查 metadata 的 appKey 和 channel ,如果不存在,則啟動失敗

初始化 JPush SDK,檢查 JNI 等庫文件的有效性,如果庫文件無效,則啟動失敗

檢查 Androidmanifest.xml,如果有 Required 的權限不存在,則啟動失敗

連接服務器登錄,如果存在網絡問題,則登陸失敗,或者前面三步有問題,不會啟動JPush SD

AppKey的獲取

進入極光的官方網站,登錄注冊,建立一個應用,創建成功后,點擊該應用進入詳情頁面就可以獲取appkey了

https://www.jpush.cn

5cfae8e63e33f1bdb4f9bc139305aab9.jpe

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven详解(转)

转自 https://www.cnblogs.com/hongwz/p/5456578.html 一.前言 以前做过的项目中,没有真正的使用过Maven,只知道其名声很大,其作用是用来管理jar 包的。最近一段时间在项目过程中使用Maven,用Maven构建的web项目,其项目…

javafx性能_对JavaFX Mobile应用程序进行性能分析

javafx性能注意:本文最初发表于2009年,仅供参考。 请查阅我们其余的JavaFX文章 。 对于每个JavaFX Mobile应用程序开发人员而言,今天都是美好的一天。 你想知道为什么吗? 因为JavaME SDK 3.0已发布。 根据我午休时听到的消息&…

egg.js java 生产数据_Egg 2.15.0 发布,阿里开源的企业级 Node.js 框架

值得注意的变化新特性[EXPERIMENT FEATURE] 支持单线程模式Bug 修复[TYPE] 支持config.static.dir的数组[TYPE] 修复中间件类型不兼容[TYPE] 修复当 esModuleInterop 为 true 时类型错误的bug其他优化文档设计原则企业级应用在追求规范和共建的同时,还需要考虑如何平…

SpringMVC工作原理

Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。 SpringMVC原理图 SpringMVC接口解释: DispatcherSer…

2015年的Java –重大事件

2015年是Java的一年,语言,平台,生态系统和社区继续主导着软件领域,只有Javascript对整个行业产生了类似的影响。 如果您错过了2015年的亮点,这里是发生的一些重大事件。 Java 20岁了,还没有死!…

java商品编写代码_商品品牌业务之后台Java代码的编写

今天是刘小爱自学Java的第146天。感谢你的观看,谢谢你。商品品牌业务之后台Java代码的编写-1.jpg (50.46 KB, 下载次数: 1)2021-2-5 00:22 上传学习计划安排如下:昨天实现了前端页面的编写以及发送请求,今天关于异步请求工具axios的简单说明。…

java中8种数据类型和默认值所占字节数

java 8种基本数据类型的默认值及所占字节数通过一段代码来测试一下 8种基本数据类型的默认值 1 package dierge;2 3 public class Ceshi { 4 int a; 5 double b; 6 boolean c; 7 char d; 8 float f; 9 byte e; 10 long h; 11 short j; 12 public static void main(String…

软件测试实验1:为三角形问题编写一个Java程序,并用Junit测试程序

实验报告 实验内容: 1.Install Junit(4.12), Hamcrest(1.3) with Eclipse 2.Install Eclemma with Eclipse 3.Write a java program for the triangle problem and test the program with Junit. 实验步骤: 1.在eclipse中安装Junit、Hamcrest和eclemma。…

java避免空指针异常_避免Java中的空指针异常

java避免空指针异常空指针异常是Java中最常见,最烦人的异常。 在这篇文章中,我想避免这种不希望的异常。 首先让我们创建引发空指针异常的示例 private Boolean isFinished(String status) { if (status.equalsIgnoreCase("Finish")) { ret…

比java好的_Java Spring真的比直接进行Java编程好吗

我已经读过依赖注入对于测试是有好处的,因为可以在没有依赖的情况下测试一个类,但是我想到的问题是,如果A类依赖于B或C或任何类,则独立于某个类的A类测试就是得出的测试结果为零,而不是失败或过去的测试.创建A类是为了执行某些操作,如果无论是使用新关键字还是在Spring中设置多…

SurfaceFlinger与Surface概述

基本原理: SF一个Client对应一个app中的SurfaceComposerClient, 分别是Binder的n端和b端,主要用来CreateSurface 一个app中有多个Activity,一个Activity一般有一个Surface(除SurfaceView,一个View就有一个Surface)&…

拼图项目动手指南

Jigsaw项目将把模块化引入Java平台,根据原始计划,它将在12月10日完成功能。 所以我们在这里,但是拼图在哪里? 在过去的六个月中肯定发生了很多事情: 原型问世 ,内部API的迫在眉睫的删除引起了很大的骚动 &…

java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串

文章目录一、题目描述1.1 题目验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a cana…

Yarn 和 Npm 命令行切换 摘录

原文作者: Gant Laborde原文地址: https://shift.infinite.red/np...中文翻译: 文蔺译文地址:http://www.wemlion.com/2016/n... 好,想必你对新的 JavaScript 包管理工具 yarn 已经有所耳闻,并已通过 npm i -g yarn 进行了安装,现在想知道怎么…

Something about Giraffe (II)

先解決老師留的幾個問題再說吧,23333 XD.Giraffe 是一個將 Deep Reinforcement Learning 和 Neural Network 结合到一起的Chess AI 程式。 作者 Matthew Lai 是一個了不起的人,目前就職於 Google Deepmind. 隨著AlphaGo席捲全球,隨著Deep lea…

php 时间选择,PHP-在学说2中的日期之间选择条目

PHP-在学说2中的日期之间选择条目我将因这个无法修复的最小错误而发疯。 我想在两天之间选择条目&#xff0c;下面的示例说明了我所有的失败&#xff1a;选择1。$qb->where(e.fecha > . $monday->format(Y-m-d));$qb->andWhere(e.fecha < . $sunday->forma…

threadlocal线程_线程故事:Web应用程序中的ThreadLocal

threadlocal线程本周&#xff0c;我花了一些合理的时间来消除Web应用程序中的所有ThreadLocal变量。 原因是他们造成了类加载器泄漏&#xff0c;我们不能再适当地取消部署我们的应用程序。 取消部署应用程序后&#xff0c;当GC根目录继续引用应用程序对象时&#xff0c;将发生类…

java开发门禁指纹,指纹门禁

大兀人脸识别控制系统USB指纹仪DW9拓扑图(指纹为java系统直接采集、云或控制板直接比对&#xff0c;无需二次注册&#xff0c;人脸为htttp上传服务器或rtsp视频流比对方案)大兀活体指纹门禁采用BS架构&#xff0c;已集成进大兀人脸识别系统&#xff0c;如二次开发可直接调用jav…

使用Selenide进行有效的UI测试

等待奇迹 圣诞节是奇迹的时刻。 在新的一年的前夕&#xff0c;我们都为下一年制定了计划。 我们希望所有问题都将在最后一年消失&#xff0c;在来年出现奇迹。 每个Java开发人员都梦想着创造一个奇迹&#xff0c;使他成为世界上最有效的Java开发人员。 我想向你展示这样的奇…

android之seekbar

做了一个拖动滑块改变数值的demo 下附上代码: <SeekBar android:id"id/myseekbar" android:layout_width"match_parent" android:layout_marginTop"20dp" android:thumb"drawable/slider" android:layout_height&qu…