Skip to content

Commit 677147a

Browse files
authored
Update Android_detail_api.md
1 parent afc3147 commit 677147a

File tree

1 file changed

+358
-0
lines changed

1 file changed

+358
-0
lines changed

doc/Android_detail_api.md

Lines changed: 358 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,358 @@
1+
# Android API 简介
2+
3+
```
4+
import { JPushPlugin } from '@ionic-native/jpush';
5+
6+
constructor( public jpush: JPushPlugin ) {
7+
......
8+
}
9+
10+
```
11+
12+
- [注册成功事件](#注册成功事件)
13+
- [接收通知时获得通知的内容](#接收通知时获得通知的内容)
14+
- [打开通知时获得通知的内容](#打开通知时获得通知的内容)
15+
- [收到自定义消息时获取消息的内容](#收到自定义消息时获取消息的内容)
16+
- [获取集成日志(同时适用于 iOS)](#获取集成日志同时适用于-ios)
17+
- [接收消息和点击通知事件](#接收消息和点击通知事件)
18+
- [统计分析](#统计分析)
19+
- [清除通知](#清除通知)
20+
- [设置允许推送时间](#设置允许推送时间)
21+
- [设置通知静默时间](#设置通知静默时间)
22+
- [通知栏样式定制](#通知栏样式定制)
23+
- [设置保留最近通知条数](#设置保留最近通知条数)
24+
- [本地通知](#本地通知)
25+
- [富媒体页面 JavaScript 回调 API](#富媒体页面-javascript-回调-api)
26+
27+
## 注册成功事件
28+
### jpush.receiveRegistrationId
29+
集成了 JPush SDK 的应用程序在第一次成功注册到 JPush 服务器时,JPush 服务器会给客户端返回一个唯一的该设备的标识 - RegistrationID。
30+
就会触发这个事件(注意只有第一次会触发该事件,之后如果想要取到 registrationId,可以直接调用 *getRegistrationID* 方法)。
31+
32+
#### 代码示例
33+
```Javascript
34+
document.addEventListener('jpush.receiveRegistrationId', function (event) {
35+
console.log(event.registrationId)
36+
}, false)
37+
```
38+
39+
## 接收通知时获得通知的内容
40+
41+
- 内容:
42+
window.plugins.jPushPlugin.receiveNotification.alert
43+
- 标题:
44+
window.plugins.jPushPlugin.receiveNotification.title
45+
- 附加字段:
46+
window.plugins.jPushPlugin.receiveNotification.extras.yourKey
47+
48+
## 打开通知时获得通知的内容
49+
50+
- 内容:
51+
window.plugins.jPushPlugin.openNotification.alert
52+
- 标题:
53+
window.plugins.jPushPlugin.openNotification.title
54+
- 附加字段
55+
window.plugins.jPushPlugin.openNotification.extras.yourKey
56+
57+
## 收到自定义消息时获取消息的内容
58+
59+
- 内容:
60+
window.plugins.jPushPlugin.receiveMessage.message
61+
- 附加字段:
62+
window.plugins.jPushPlugin.receiveMessage.extras.yourKey
63+
64+
## 获取集成日志(同时适用于 iOS)
65+
66+
### API - setDebugMode
67+
68+
用于开启调试模式,可以查看集成 JPush 过程中的 Log,如果集成失败,可方便定位问题所在。
69+
70+
#### 接口定义
71+
72+
jpush.setDebugMode(mode)
73+
74+
#### 参数说明
75+
76+
- mode:
77+
- true 显示集成日志。
78+
- false 不显示集成日志。
79+
80+
## 接收消息和点击通知事件
81+
### API - receiveMessageInAndroidCallback
82+
83+
用于 Android 收到应用内消息的回调函数(请注意和通知的区别),该函数不需要主动调用。
84+
85+
#### 接口定义
86+
87+
jpush.receiveMessageInAndroidCallback(data)
88+
89+
#### 参数说明
90+
91+
- data: 接收到的 js 字符串,包含的 key:value 请进入该函数体查看。
92+
93+
94+
### API - openNotificationInAndroidCallback
95+
96+
当点击 Android 手机的通知栏进入应用程序时,会调用这个函数,这个函数不需要主动调用,是作为回调函数来用的。
97+
98+
#### 接口定义
99+
100+
jpush.openNotificationInAndroidCallback(data)
101+
102+
#### 参数说明
103+
104+
- data: js 字符串。
105+
106+
## 统计分析
107+
108+
### API - onResume / onPause
109+
110+
这是一个 Android Local API,不是 js 的 API,请注意。
111+
本 API 用于“用户使用时长”,“活跃用户”,“用户打开次数”的统计,并上报到服务器,在 Portal 上展示给开发者。
112+
113+
#### 接口定义
114+
115+
public static void onResume(final Activity activity)
116+
public static void onPause(final Activity activity)
117+
118+
#### 参数说明
119+
120+
- Activity: 当前所在的 Activity。
121+
122+
#### 调用说明
123+
124+
应在所有的 Activity 的 onResume / onPause 方法里调用。
125+
126+
#### 代码示例
127+
128+
@Override
129+
protected void onResume() {
130+
super.onResume();
131+
JPushInterface.onResume(this);
132+
}
133+
134+
@Override
135+
protected void onPause() {
136+
super.onPause();
137+
JPushInterface.onPause(this);
138+
}
139+
140+
### API - setStatisticsOpen
141+
142+
用于在 js 中控制是否打开应用的统计分析功能,但如果已经添加了上面的 onResume / onPause 方法,
143+
就不能再通过这个方法来控制统计分析功能了。
144+
145+
#### 接口定义
146+
147+
jpush.setStatisticsOpen(boolean)
148+
149+
#### 参数说明
150+
151+
- boolean:
152+
- true: 打开统计分析功能。
153+
- false: 关闭统计分析功能。
154+
155+
### API - reportNotificationOpened
156+
157+
用于上报用户的通知栏被打开,或者用于上报用户自定义消息被展示等客户端需要统计的事件。
158+
159+
#### 接口定义
160+
161+
jpush.reportNotificationOpened(msgID)
162+
163+
#### 参数说明
164+
165+
- msgID: 收到的通知或者自定义消息的 id。
166+
167+
168+
## 清除通知
169+
170+
### API - clearAllNotification
171+
172+
推送通知到客户端时,由 JPush SDK 展现通知到通知栏上。
173+
174+
此 API 提供清除通知的功能,包括:清除所有 JPush 展现的通知(不包括非 JPush SDK 展现的)。
175+
176+
#### 接口定义
177+
178+
jpush.clearAllNotification()
179+
180+
### API - clearNotificationById
181+
根据通知 Id 清除通知(包括本地通知)。
182+
183+
#### 接口定义
184+
185+
jpush.clearNotificationById(notificationId)
186+
187+
#### 参数说明
188+
- notificationId:int,通知的 id。
189+
190+
#### 代码示例
191+
192+
jpush.clearNotificationById(1)
193+
194+
## 设置允许推送时间
195+
196+
### API - setPushTime
197+
默认情况下用户在任何时间都允许推送。即任何时候有推送下来,客户端都会收到,并展示。
198+
开发者可以调用此 API 来设置允许推送的时间。
199+
如果不在该时间段内收到消息,当前的行为是:推送到的通知会被扔掉。
200+
201+
#### 接口定义
202+
203+
jpush.setPushTime(days, startHour, endHour)
204+
205+
#### 参数说明
206+
- days: 数组,0 表示星期天,1 表示星期一,以此类推(7天制,数组中值的范围为 0 到 6 )。
207+
数组的值为 null, 表示任何时间都可以收到消息和通知,数组的 size 为 0,则表示任何时间都收不到消息和通知。
208+
- startHour: 整形,允许推送的开始时间 (24 小时制:startHour 的范围为 0 到 23)。
209+
- endHour: 整形,允许推送的结束时间 (24 小时制:endHour 的范围为 0 到 23)。
210+
211+
## 设置通知静默时间
212+
213+
### API - setSilenceTime
214+
默认情况下用户在收到推送通知时,客户端可能会有震动,响铃等提示。
215+
但用户在睡觉、开会等时间点希望为 "免打扰" 模式,也是静音时段的概念。
216+
开发者可以调用此 API 来设置静音时段。如果在该时间段内收到消息,则:不会有铃声和震动。
217+
218+
#### 接口定义
219+
220+
jpush.setSilenceTime(startHour, startMinute, endHour, endMinute)
221+
222+
#### 参数说明
223+
224+
- startHour: 整形,静音时段的开始时间 - 小时 (24小时制,范围:0~23 )。
225+
- startMinute: 整形,静音时段的开始时间 - 分钟(范围:0~59 )。
226+
- endHour: 整形,静音时段的结束时间 - 小时 (24小时制,范围:0~23 )。
227+
- endMinute: 整形,静音时段的结束时间 - 分钟(范围:0~59 )。
228+
229+
230+
## 通知栏样式定制
231+
232+
### API - setBasicPushNotificationBuilder, setCustomPushNotificationBuilder
233+
234+
当用户需要定制默认的通知栏样式时,则可调用此方法。
235+
需要用户去自定义 ../JPushPlugin.java 中的同名方法代码,然后再在 js 端 调用该方法。
236+
237+
具体用法可参考[官方文档](http://docs.jiguang.cn/jpush/client/Android/android_api/#api_6)
238+
239+
JPush SDK 提供了 2 个用于定制通知栏样式的构建类:
240+
241+
- setBasicPushNotificationBuilder:
242+
Basic 用于定制 Android Notification 里的 defaults / flags / icon 等基础样式(行为)。
243+
- setCustomPushNotificationBuilder:
244+
继承 Basic 进一步让开发者定制 Notification Layout。
245+
246+
如果不调用此方法定制,则极光 Push SDK 默认的通知栏样式是 Android 标准的通知栏。
247+
248+
#### 接口定义
249+
250+
jpush.setBasicPushNotificationBuilder()
251+
jpush.setCustomPushNotificationBuilder()
252+
253+
254+
## 设置保留最近通知条数
255+
256+
### API - setLatestNotificationNum
257+
258+
通过极光推送,推送了很多通知到客户端时,如果用户不去处理,就会有很多保留在那里。
259+
260+
默认为保留最近 5 条通知,开发者可通过调用此 API 来定义为不同的数量。
261+
262+
#### 接口定义
263+
264+
jpush.setLatestNotificationNum(num)
265+
266+
#### 参数说明
267+
268+
- num: 保存的条数。
269+
270+
271+
## 本地通知
272+
### API - addLocalNotification, removeLocalNotification, clearLocalNotifications
273+
本地通知 API 不依赖于网络,无网条件下依旧可以触发。
274+
275+
本地通知与网络推送的通知是相互独立的,不受保留最近通知条数上限的限制。
276+
277+
本地通知的定时时间是自发送时算起的,不受中间关机等操作的影响。
278+
279+
三个接口的功能分别为:添加一个本地通知,清除一个本地通知,清除所有的本地通知。
280+
281+
#### 接口定义
282+
283+
jpush.addLocalNotification(builderId, content, title,
284+
notificaitonID, broadcastTime, extras)
285+
jpush.removeLocalNotification(notificationID)
286+
jpush.clearLocalNotifications() // 同时适用于 iOS
287+
288+
#### 参数说明
289+
290+
- builderId: 设置本地通知样式。
291+
- content: 设置本地通知的 content。
292+
- title: 设置本地通知的 title。
293+
- notificaitonID: 设置本地通知的 ID(不要为 0)。
294+
- broadcastTime: 设置本地通知触发时间,为距离当前时间的数值,单位是毫秒。
295+
- extras: 设置额外的数据信息 extras 为 json 字符串。
296+
297+
298+
## 富媒体页面 JavaScript 回调 API
299+
富媒体推送通知时,用户可以用自定义的Javascript 函数来控制页面,如关闭当前页面,点击按钮跳转到指定的 Activity,通知应用程序做一些指定的动作等。
300+
301+
此 API 提供的回调函数包括:关闭当前页面、打开应用的主 Activity、根据 Activity 名字打开对应的 Activity、以广播的形式传递页面参数到应用程序等功能。
302+
303+
⚠️⚠️⚠️⚠️ 需要 declear var JPushWeb:any;
304+
305+
### API - 关闭当前页面
306+
307+
JPushWeb.close(); // 在富文本 HTML 页面中调用后会关闭当前页面。
308+
309+
### API - 打开主 Activity
310+
311+
JPushWeb.startMainActivity(String params);
312+
313+
在HTML中调用此函数后,会打开程序的主Activity, 并在对应的 Intent 传入参数 ”params“ ,Key 为 JPushInterface.EXTRA_EXTRA。
314+
315+
对应 Activity 获取 params 示例代码:
316+
317+
Intent intent = getIntent();
318+
if (null != intent ) {
319+
String params = intent.getStringExtra(JPushInterface.EXTRA_EXTRA);
320+
}
321+
322+
### API - 触发应用中的操作
323+
324+
JPushWeb.triggerNativeAction(String params);
325+
326+
调用了该方法后需要在 MyReceiver.java 中实现后面的业务逻辑:
327+
328+
if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
329+
Log.d(TAG, "用户收到到RICH PUSH CALLBACK: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
330+
//在这里根据 JPushInterface.EXTRA_EXTRA 的内容触发客户端动作,比如打开新的Activity 、打开一个网页等。
331+
}
332+
333+
#### 代码示例
334+
335+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
336+
<html>
337+
<head>
338+
<title>JPush Webview Test</title>
339+
<script>
340+
function clickButton() {
341+
JPushWeb.close();
342+
}
343+
344+
function openUrl() {
345+
var json = "{'action':'open', 'url':'www.jpush.cn'}";
346+
JPushWeb.triggerNativeAction(json);
347+
JPushWeb.close(); //客服端在广播中收到json 后,可以打开对应的URL。
348+
}
349+
</script>
350+
</head>
351+
<body>
352+
<button onclick="javascript:clickButton(this);return false;">Close</button>
353+
<button onclick="javascript:JPushWeb.startMainActivity('test - startMainActivity');return false;">StartMainActivity</button>
354+
<button onclick="javascript:JPushWeb.triggerNativeAction('test - triggerNativeAction');Javascript:JPushWeb.close();">triggerNativeAction and Close current webwiew</button>
355+
<button onclick="javascript:JPushWeb.startActivityByName('com.example.jpushdemo.TestActivity','test - startActivityByName');">startActivityByName</button>
356+
<button onclick="javascript:openUrl();">open a url</button>
357+
</body>
358+
</html>

0 commit comments

Comments
 (0)