|
| 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