mirror of
https://github.com/jpush/jpush-phonegap-plugin.git
synced 2026-02-08 00:05:13 +08:00
Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa4f3ac0d7 | ||
|
|
3ad9a415e9 | ||
|
|
d76d01c856 | ||
|
|
b7d4ba5111 | ||
|
|
7c326599aa | ||
|
|
2adbba2943 | ||
|
|
5b22d798cb | ||
|
|
eb624a7bb2 | ||
|
|
e29f00f77f | ||
|
|
1ecb2b273a | ||
|
|
6767af7488 | ||
|
|
03eab0c59e | ||
|
|
23ae6ad342 | ||
|
|
ccfffc9a69 | ||
|
|
16c3c96844 | ||
|
|
b2e818e88d | ||
|
|
5a8a926c50 | ||
|
|
0903b58270 | ||
|
|
f0dc403ca8 | ||
|
|
5c53749171 | ||
|
|
68bb0ebfdf | ||
|
|
30fc85fc8d | ||
|
|
fa0ca5f335 | ||
|
|
8de93a3a07 | ||
|
|
a4c17d3882 | ||
|
|
1d420b5bb6 | ||
|
|
d69f50915c | ||
|
|
e26d8448a0 | ||
|
|
387eaa1aff | ||
|
|
45785a569c | ||
|
|
0c8a6d25a6 | ||
|
|
529f08df88 | ||
|
|
e60d7c2b8c | ||
|
|
265d88e766 |
35
README.md
35
README.md
@@ -13,10 +13,10 @@
|
||||
|
||||
>注意:插件从 v3.4.0 开始支持 cordova-android 7.0.0,因 cordova-android 7.0.0 修改了 Android 项目结构,因此不兼容之前的版本,升级前请务必注意。
|
||||
>
|
||||
>如果需要安装之前版本的插件,请先安装 v1.2.0 以下版本(建议安装 v1.1.12)的 [cordova-plugin-jcore](https://github.com/jpush/cordova-plugin-jcore),再安装旧版本插件(比如 v3.3.2),否则运行会报错。
|
||||
>
|
||||
>如果需要在cordova-android 7.0.0之前版本集成最新插件,参照[这篇文章](https://www.jianshu.com/p/23b117ca27a6)
|
||||
>
|
||||
>如果需要安装之前版本的插件,请先安装 v1.2.0 以下版本(建议安装 v1.1.12)的 [cordova-plugin-jcore](https://github.com/jpush/cordova-plugin-jcore),再安装旧版本插件(比如 v3.3.2),否则运行会报错。
|
||||
>
|
||||
>[Cordova Android版本与原生版本对应表](http://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#requirements-and-support)
|
||||
## Install
|
||||
|
||||
@@ -41,6 +41,27 @@
|
||||
```shell
|
||||
cordova plugin add Your_Plugin_Path --variable APP_KEY=your_jpush_appkey
|
||||
```
|
||||
|
||||
|
||||
### 参数
|
||||
|
||||
- APP_KEY: 必须设置,JPush 上注册的包名对应的 Appkey
|
||||
|
||||
```shell
|
||||
--variable APP_KEY=your_jpush_appkey
|
||||
```
|
||||
|
||||
- CHANNEL: 可以不设置,v3.6.0+ 版本开始支持(Android Only),方便开发者统计 APK 分发渠道,默认为 developer-default.
|
||||
|
||||
```shell
|
||||
--variable CHANNEL=your_channel
|
||||
```
|
||||
|
||||
- 同时动态配置 APP_KEY 和 CHANNEL 示例
|
||||
|
||||
```shell
|
||||
cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey --variable CHANNEL=your_channel
|
||||
```
|
||||
|
||||
### Ionic
|
||||
|
||||
@@ -48,12 +69,18 @@
|
||||
|
||||
```shell
|
||||
npm install --save @jiguang-ionic/jpush
|
||||
|
||||
# npm install --save @jiguang-ionic/jpush@2.0.0 for ionic4+
|
||||
```
|
||||
|
||||
然后在 *app.module.ts* 中增加:
|
||||
|
||||
```js
|
||||
// @jiguang-ionic/jpush@1.0.0+
|
||||
import { JPush } from '@jiguang-ionic/jpush';
|
||||
|
||||
// @jiguang-ionic/jpush@2.0.0+
|
||||
import { JPush } from '@jiguang-ionic/jpush/ngx';
|
||||
...
|
||||
providers: [
|
||||
...
|
||||
@@ -123,6 +150,10 @@ Android 的推送通过长连接的方式实现,只有在保持连接的情况
|
||||
|
||||
### iOS
|
||||
|
||||
#### XCode 10 收不到推送怎么办?
|
||||
|
||||
打开 xcode -> file -> WorkSpace Settings… -> Build System 改成 Legacy Build System 然后卸载 App 重新运行。
|
||||
|
||||
#### 打包时遇到 i386 打包失败怎么办?
|
||||
|
||||
```shell
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
- [设置保留最近通知条数](#设置保留最近通知条数)
|
||||
- [本地通知](#本地通知)
|
||||
- [获取推送连接状态](#获取推送连接状态)
|
||||
|
||||
- [地理围栏](#地理围栏)
|
||||
|
||||
## 获取集成日志(同时适用于 iOS)
|
||||
|
||||
@@ -215,4 +215,34 @@ window.JPush.getConnectionState(function (result) {
|
||||
// 断开状态
|
||||
}
|
||||
})
|
||||
```
|
||||
```
|
||||
|
||||
## 地理围栏
|
||||
|
||||
### API - setGeofenceInterval
|
||||
|
||||
设置地理围栏监控周期,最小3分钟,最大1天。默认为15分钟,当距离地理围栏边界小于1000米周期自动调整为3分钟。设置成功后一直使用设置周期,不会进行调整。
|
||||
|
||||
#### 接口定义
|
||||
|
||||
```js
|
||||
window.JPush.setGeofenceInterval(interval)
|
||||
```
|
||||
|
||||
#### 参数说明
|
||||
|
||||
- interval: 监控周期,单位是毫秒。
|
||||
|
||||
### API - setMaxGeofenceNumber
|
||||
|
||||
设置最多允许保存的地理围栏数量,超过最大限制后,如果继续创建先删除最早创建的地理围栏。默认数量为10个,允许设置最小1个,最大100个。
|
||||
|
||||
#### 接口定义
|
||||
|
||||
```js
|
||||
window.JPush.setMaxGeofenceNumber(maxNumber)
|
||||
```
|
||||
|
||||
#### 参数说明
|
||||
|
||||
- maxNumber: 最多允许保存的地理围栏个数
|
||||
@@ -47,14 +47,6 @@ window.JPush.startJPushSDK()
|
||||
|
||||
调用此 API,用来开启 JPush SDK 提供的推送服务。
|
||||
|
||||
开发者 App 可以通过调用停止推送服务 API 来停止极光推送服务,当又需要使用极光推送服务时,则必须要调用恢复推送服务 API。
|
||||
|
||||
本功能是一个完全本地的状态操作。也就是说:停止推送服务的状态不会保存到服务器上。
|
||||
如果停止推送服务后,开发者 App 被重新安装,或者被清除数据,
|
||||
JPush SDK 会恢复正常的默认行为。(因为保存在本地的状态数据被清除掉了)。
|
||||
本功能其行为类似于网络中断的效果,即:推送服务停止期间推送的消息,
|
||||
恢复推送服务后,如果推送的消息还在保留的时长范围内,则客户端是会收到离线消息。
|
||||
|
||||
#### 接口定义
|
||||
|
||||
```js
|
||||
@@ -63,6 +55,14 @@ window.JPush.init()
|
||||
|
||||
### API - stopPush
|
||||
|
||||
开发者 App 可以通过调用停止推送服务 API 来停止极光推送服务,当又需要使用极光推送服务时,则必须要调用恢复推送服务 API。
|
||||
|
||||
本功能是一个完全本地的状态操作。也就是说:停止推送服务的状态不会保存到服务器上。
|
||||
如果停止推送服务后,开发者 App 被重新安装,或者被清除数据,
|
||||
JPush SDK 会恢复正常的默认行为。(因为保存在本地的状态数据被清除掉了)。
|
||||
本功能其行为类似于网络中断的效果,即:推送服务停止期间推送的消息,
|
||||
恢复推送服务后,如果推送的消息还在保留的时长范围内,则客户端是会收到离线消息。
|
||||
|
||||
- 不推荐调用,因为这个 API 只是让你的 DeviceToken 失效,在 设置-通知 中您的应用程序没有任何变化。
|
||||
- 推荐:设置一个 UI 界面,提醒用户在 设置-通知 中关闭推送服务。
|
||||
|
||||
|
||||
@@ -23,11 +23,17 @@ export interface AliasOptions {
|
||||
@Injectable()
|
||||
export class JPush extends IonicNativePlugin {
|
||||
|
||||
@Cordova()
|
||||
init(): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS', 'Android']
|
||||
})
|
||||
init(): void { }
|
||||
|
||||
@Cordova()
|
||||
setDebugMode(enable: boolean): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS', 'Android']
|
||||
})
|
||||
setDebugMode(enable: boolean): void { }
|
||||
|
||||
@Cordova()
|
||||
getRegistrationID(): Promise<any> { return; }
|
||||
@@ -91,41 +97,74 @@ export class JPush extends IonicNativePlugin {
|
||||
|
||||
// iOS API - start
|
||||
|
||||
@Cordova()
|
||||
setBadge(badge: number): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
setBadge(badge: number): void { }
|
||||
|
||||
@Cordova()
|
||||
resetBadge(): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
resetBadge(): void { }
|
||||
|
||||
@Cordova()
|
||||
setApplicationIconBadgeNumber(badge: number): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
setApplicationIconBadgeNumber(badge: number): void { }
|
||||
|
||||
@Cordova()
|
||||
getApplicationIconBadgeNumber(): Promise<any> { return; }
|
||||
|
||||
@Cordova()
|
||||
addLocalNotificationForIOS(delayTime: number, content: string, badge: number, identifierKey: string, extras?: object): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
addLocalNotificationForIOS(delayTime: number, content: string, badge: number, identifierKey: string, extras?: object): void { }
|
||||
|
||||
@Cordova()
|
||||
deleteLocalNotificationWithIdentifierKeyInIOS(identifierKey: string): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
deleteLocalNotificationWithIdentifierKeyInIOS(identifierKey: string): void { }
|
||||
|
||||
@Cordova()
|
||||
addDismissActions(actions: Array<object>, categoryId: string): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
addDismissActions(actions: Array<object>, categoryId: string): void { }
|
||||
|
||||
@Cordova()
|
||||
addNotificationActions(actions: Array<object>, categoryId: string): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
addNotificationActions(actions: Array<object>, categoryId: string): void { }
|
||||
|
||||
@Cordova()
|
||||
setLocation(latitude: number, longitude: number): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
setLocation(latitude: number, longitude: number): void { }
|
||||
|
||||
@Cordova()
|
||||
startLogPageView(pageName: string): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
startLogPageView(pageName: string): void { return; }
|
||||
|
||||
@Cordova()
|
||||
stopLogPageView(pageName: string): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
stopLogPageView(pageName: string): void { return; }
|
||||
|
||||
@Cordova()
|
||||
beginLogPageView(pageName: string, duration: number): Promise<any> { return; }
|
||||
@Cordova({
|
||||
sync: true,
|
||||
platforms: ['iOS']
|
||||
})
|
||||
beginLogPageView(pageName: string, duration: number): void { return; }
|
||||
|
||||
// iOS API - end
|
||||
|
||||
|
||||
58
ionic/jpush/index.d.ts
vendored
58
ionic/jpush/index.d.ts
vendored
@@ -7,9 +7,37 @@ export interface AliasOptions {
|
||||
sequence: number;
|
||||
alias?: string;
|
||||
}
|
||||
export declare class JPush extends IonicNativePlugin {
|
||||
init(): Promise<any>;
|
||||
setDebugMode(enable: boolean): Promise<any>;
|
||||
/**
|
||||
* @name jpush
|
||||
* @description
|
||||
* This plugin does something
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { jpush } from '@ionic-native/jpush';
|
||||
*
|
||||
*
|
||||
* constructor(private jpush: jpush) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
*
|
||||
* this.jpush.functionName('Hello', 123)
|
||||
* .then((res: any) => console.log(res))
|
||||
* .catch((error: any) => console.error(error));
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
export declare class JPushOriginal extends IonicNativePlugin {
|
||||
/**
|
||||
* This function does something
|
||||
* @param arg1 {string} Some param to configure something
|
||||
* @param arg2 {number} Another param to configure something
|
||||
* @return {Promise<any>} Returns a promise that resolves when something happens
|
||||
*/
|
||||
functionName(arg1: string, arg2: number): Promise<any>;
|
||||
init(): void;
|
||||
setDebugMode(enable: boolean): void;
|
||||
getRegistrationID(): Promise<any>;
|
||||
stopPush(): Promise<any>;
|
||||
resumePush(): Promise<any>;
|
||||
@@ -40,18 +68,18 @@ export declare class JPush extends IonicNativePlugin {
|
||||
*/
|
||||
getUserNotificationSettings(): Promise<any>;
|
||||
clearLocalNotifications(): Promise<any>;
|
||||
setBadge(badge: number): Promise<any>;
|
||||
resetBadge(): Promise<any>;
|
||||
setApplicationIconBadgeNumber(badge: number): Promise<any>;
|
||||
setBadge(badge: number): void;
|
||||
resetBadge(): void;
|
||||
setApplicationIconBadgeNumber(badge: number): void;
|
||||
getApplicationIconBadgeNumber(): Promise<any>;
|
||||
addLocalNotificationForIOS(delayTime: number, content: string, badge: number, identifierKey: string, extras?: object): Promise<any>;
|
||||
deleteLocalNotificationWithIdentifierKeyInIOS(identifierKey: string): Promise<any>;
|
||||
addDismissActions(actions: Array<object>, categoryId: string): Promise<any>;
|
||||
addNotificationActions(actions: Array<object>, categoryId: string): Promise<any>;
|
||||
setLocation(latitude: number, longitude: number): Promise<any>;
|
||||
startLogPageView(pageName: string): Promise<any>;
|
||||
stopLogPageView(pageName: string): Promise<any>;
|
||||
beginLogPageView(pageName: string, duration: number): Promise<any>;
|
||||
addLocalNotificationForIOS(delayTime: number, content: string, badge: number, identifierKey: string, extras?: object): void;
|
||||
deleteLocalNotificationWithIdentifierKeyInIOS(identifierKey: string): void;
|
||||
addDismissActions(actions: Array<object>, categoryId: string): void;
|
||||
addNotificationActions(actions: Array<object>, categoryId: string): void;
|
||||
setLocation(latitude: number, longitude: number): void;
|
||||
startLogPageView(pageName: string): void;
|
||||
stopLogPageView(pageName: string): void;
|
||||
beginLogPageView(pageName: string, duration: number): void;
|
||||
getConnectionState(): Promise<any>;
|
||||
setBasicPushNotificationBuilder(): Promise<any>;
|
||||
setCustomPushNotificationBuilder(): Promise<any>;
|
||||
@@ -65,3 +93,5 @@ export declare class JPush extends IonicNativePlugin {
|
||||
setSilenceTime(startHour: number, startMinute: number, endHour: number, endMinute: number): Promise<any>;
|
||||
setPushTime(weekdays: Array<string>, startHour: number, endHour: number): Promise<any>;
|
||||
}
|
||||
|
||||
export declare const JPush: JPushOriginal;
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
95
ionic/jpush/ngx/index.d.ts
vendored
Normal file
95
ionic/jpush/ngx/index.d.ts
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
import { IonicNativePlugin } from '@ionic-native/core';
|
||||
export interface TagOptions {
|
||||
sequence: number;
|
||||
tags?: Array<string>;
|
||||
}
|
||||
export interface AliasOptions {
|
||||
sequence: number;
|
||||
alias?: string;
|
||||
}
|
||||
/**
|
||||
* @name jpush
|
||||
* @description
|
||||
* This plugin does something
|
||||
*
|
||||
* @usage
|
||||
* ```typescript
|
||||
* import { jpush } from '@ionic-native/jpush';
|
||||
*
|
||||
*
|
||||
* constructor(private jpush: jpush) { }
|
||||
*
|
||||
* ...
|
||||
*
|
||||
*
|
||||
* this.jpush.functionName('Hello', 123)
|
||||
* .then((res: any) => console.log(res))
|
||||
* .catch((error: any) => console.error(error));
|
||||
*
|
||||
* ```
|
||||
*/
|
||||
export declare class JPush extends IonicNativePlugin {
|
||||
/**
|
||||
* This function does something
|
||||
* @param arg1 {string} Some param to configure something
|
||||
* @param arg2 {number} Another param to configure something
|
||||
* @return {Promise<any>} Returns a promise that resolves when something happens
|
||||
*/
|
||||
functionName(arg1: string, arg2: number): Promise<any>;
|
||||
init(): void;
|
||||
setDebugMode(enable: boolean): void;
|
||||
getRegistrationID(): Promise<any>;
|
||||
stopPush(): Promise<any>;
|
||||
resumePush(): Promise<any>;
|
||||
isPushStopped(): Promise<any>;
|
||||
setTags(params: TagOptions): Promise<any>;
|
||||
addTags(params: TagOptions): Promise<any>;
|
||||
deleteTags(params: TagOptions): Promise<any>;
|
||||
cleanTags(params: TagOptions): Promise<any>;
|
||||
getAllTags(params: TagOptions): Promise<any>;
|
||||
/**
|
||||
* @param params { sequence: number, tag: string }
|
||||
*/
|
||||
checkTagBindState(params: object): Promise<any>;
|
||||
setAlias(params: AliasOptions): Promise<any>;
|
||||
deleteAlias(params: AliasOptions): Promise<any>;
|
||||
getAlias(params: AliasOptions): Promise<any>;
|
||||
/**
|
||||
* Determinate whether the application notification has been opened.
|
||||
*
|
||||
* iOS: 0: closed; >1: opened.
|
||||
* UIRemoteNotificationTypeNone = 0,
|
||||
* UIRemoteNotificationTypeBadge = 1 << 0,
|
||||
* UIRemoteNotificationTypeSound = 1 << 1,
|
||||
* UIRemoteNotificationTypeAlert = 1 << 2,
|
||||
* UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3
|
||||
*
|
||||
* Android: 0: closed; 1: opened.
|
||||
*/
|
||||
getUserNotificationSettings(): Promise<any>;
|
||||
clearLocalNotifications(): Promise<any>;
|
||||
setBadge(badge: number): void;
|
||||
resetBadge(): void;
|
||||
setApplicationIconBadgeNumber(badge: number): void;
|
||||
getApplicationIconBadgeNumber(): Promise<any>;
|
||||
addLocalNotificationForIOS(delayTime: number, content: string, badge: number, identifierKey: string, extras?: object): void;
|
||||
deleteLocalNotificationWithIdentifierKeyInIOS(identifierKey: string): void;
|
||||
addDismissActions(actions: Array<object>, categoryId: string): void;
|
||||
addNotificationActions(actions: Array<object>, categoryId: string): void;
|
||||
setLocation(latitude: number, longitude: number): void;
|
||||
startLogPageView(pageName: string): void;
|
||||
stopLogPageView(pageName: string): void;
|
||||
beginLogPageView(pageName: string, duration: number): void;
|
||||
getConnectionState(): Promise<any>;
|
||||
setBasicPushNotificationBuilder(): Promise<any>;
|
||||
setCustomPushNotificationBuilder(): Promise<any>;
|
||||
clearAllNotification(): Promise<any>;
|
||||
clearNotificationById(id: number): Promise<any>;
|
||||
setLatestNotificationNum(num: number): Promise<any>;
|
||||
addLocalNotification(builderId: number, content: string, title: string, notificationId: number, broadcastTime: number, extras?: string): Promise<any>;
|
||||
removeLocalNotification(notificationId: number): Promise<any>;
|
||||
reportNotificationOpened(msgId: number): Promise<any>;
|
||||
requestPermission(): Promise<any>;
|
||||
setSilenceTime(startHour: number, startMinute: number, endHour: number, endMinute: number): Promise<any>;
|
||||
setPushTime(weekdays: Array<string>, startHour: number, endHour: number): Promise<any>;
|
||||
}
|
||||
95
ionic/jpush/ngx/index.js
Normal file
95
ionic/jpush/ngx/index.js
Normal file
File diff suppressed because one or more lines are too long
1
ionic/jpush/ngx/index.metadata.json
Normal file
1
ionic/jpush/ngx/index.metadata.json
Normal file
@@ -0,0 +1 @@
|
||||
[{"__symbolic":"module","version":4,"metadata":{"TagOptions":{"__symbolic":"interface"},"AliasOptions":{"__symbolic":"interface"},"JPush":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ionic-native/core","name":"IonicNativePlugin","line":67,"character":27},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":64,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"functionName":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"setDebugMode":[{"__symbolic":"method"}],"getRegistrationID":[{"__symbolic":"method"}],"stopPush":[{"__symbolic":"method"}],"resumePush":[{"__symbolic":"method"}],"isPushStopped":[{"__symbolic":"method"}],"setTags":[{"__symbolic":"method"}],"addTags":[{"__symbolic":"method"}],"deleteTags":[{"__symbolic":"method"}],"cleanTags":[{"__symbolic":"method"}],"getAllTags":[{"__symbolic":"method"}],"checkTagBindState":[{"__symbolic":"method"}],"setAlias":[{"__symbolic":"method"}],"deleteAlias":[{"__symbolic":"method"}],"getAlias":[{"__symbolic":"method"}],"getUserNotificationSettings":[{"__symbolic":"method"}],"clearLocalNotifications":[{"__symbolic":"method"}],"setBadge":[{"__symbolic":"method"}],"resetBadge":[{"__symbolic":"method"}],"setApplicationIconBadgeNumber":[{"__symbolic":"method"}],"getApplicationIconBadgeNumber":[{"__symbolic":"method"}],"addLocalNotificationForIOS":[{"__symbolic":"method"}],"deleteLocalNotificationWithIdentifierKeyInIOS":[{"__symbolic":"method"}],"addDismissActions":[{"__symbolic":"method"}],"addNotificationActions":[{"__symbolic":"method"}],"setLocation":[{"__symbolic":"method"}],"startLogPageView":[{"__symbolic":"method"}],"stopLogPageView":[{"__symbolic":"method"}],"beginLogPageView":[{"__symbolic":"method"}],"getConnectionState":[{"__symbolic":"method"}],"setBasicPushNotificationBuilder":[{"__symbolic":"method"}],"setCustomPushNotificationBuilder":[{"__symbolic":"method"}],"clearAllNotification":[{"__symbolic":"method"}],"clearNotificationById":[{"__symbolic":"method"}],"setLatestNotificationNum":[{"__symbolic":"method"}],"addLocalNotification":[{"__symbolic":"method"}],"removeLocalNotification":[{"__symbolic":"method"}],"reportNotificationOpened":[{"__symbolic":"method"}],"requestPermission":[{"__symbolic":"method"}],"setSilenceTime":[{"__symbolic":"method"}],"setPushTime":[{"__symbolic":"method"}]}}}}]
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "@jiguang-ionic/jpush",
|
||||
"version": "1.0.2",
|
||||
"version": "2.0.0",
|
||||
"description": "JPush support for ionic-native",
|
||||
"module": "index.js",
|
||||
"typings": "index.d.ts",
|
||||
"author": "hevin",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@ionic-native/core": "^4.2.0",
|
||||
"@ionic-native/core": "^5.1.0",
|
||||
"@angular/core": "*",
|
||||
"rxjs": "^5.0.1"
|
||||
"rxjs": "^6.3.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "jpush-phonegap-plugin",
|
||||
"version": "3.4.5",
|
||||
"version": "3.6.3",
|
||||
"description": "JPush for cordova plugin",
|
||||
"cordova": {
|
||||
"id": "jpush-phonegap-plugin",
|
||||
|
||||
136
plugin.xml
136
plugin.xml
@@ -2,7 +2,7 @@
|
||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
id="jpush-phonegap-plugin"
|
||||
version="3.4.5">
|
||||
version="3.6.3">
|
||||
|
||||
<name>JPush</name>
|
||||
<description>JPush for cordova plugin</description>
|
||||
@@ -11,6 +11,7 @@
|
||||
<license>MIT License</license>
|
||||
|
||||
<preference name="APP_KEY" />
|
||||
<preference name="CHANNEL" default="developer-default" />
|
||||
|
||||
<engines>
|
||||
<engine name="cordova" version=">=3.0" />
|
||||
@@ -48,7 +49,7 @@
|
||||
<source-file src="src/ios/Plugins/AppDelegate+JPush.m" />
|
||||
|
||||
<header-file src="src/ios/lib/JPUSHService.h" />
|
||||
<source-file src="src/ios/lib/jpush-ios-3.1.0.a" framework="true" />
|
||||
<source-file src="src/ios/lib/jpush-ios-3.1.2.a" framework="true" />
|
||||
<resource-file src="src/ios/JPushConfig.plist" />
|
||||
|
||||
<framework src="CFNetwork.framework" weak="true" />
|
||||
@@ -85,40 +86,20 @@
|
||||
|
||||
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
</config-file>
|
||||
|
||||
<config-file target="AndroidManifest.xml" parent="/manifest/application" mode="merge">
|
||||
<!-- Required SDK核心功能 -->
|
||||
<activity android:name="cn.jpush.android.ui.PushActivity"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar"
|
||||
android:configChanges="orientation|keyboardHidden">
|
||||
<intent-filter>
|
||||
<action android:name="cn.jpush.android.ui.PushActivity" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- Rich push 核心功能 since 2.0.6 -->
|
||||
<activity android:name="cn.jpush.android.ui.PopWinActivity"
|
||||
android:theme="@style/MyDialogStyle"
|
||||
android:exported="false">
|
||||
</activity>
|
||||
|
||||
<!-- Required SDK 核心功能 -->
|
||||
<service android:name="cn.jpush.android.service.DownloadService"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
</service>
|
||||
|
||||
<!-- Required SDK 核心功能-->
|
||||
<service android:name="cn.jpush.android.service.PushService"
|
||||
@@ -133,10 +114,33 @@
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<!-- since 3.0.9 Required SDK 核心功能-->
|
||||
<provider
|
||||
android:authorities="$PACKAGE_NAME.DataProvider"
|
||||
android:name="cn.jpush.android.service.DataProvider"
|
||||
android:exported="true" />
|
||||
|
||||
<!-- since 1.8.0 option 可选项。用于同一设备中不同应用的 JPush 服务相互拉起的功能。 -->
|
||||
<!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->
|
||||
<service android:name="cn.jpush.android.service.DaemonService"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="cn.jpush.android.intent.DaemonService" />
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<!-- since 3.1.0 Required SDK 核心功能-->
|
||||
<provider
|
||||
android:authorities="$PACKAGE_NAME.DownloadProvider"
|
||||
android:name="cn.jpush.android.service.DownloadProvider"
|
||||
android:exported="true"
|
||||
/>
|
||||
|
||||
<!-- Required SDK核心功能-->
|
||||
<receiver android:name="cn.jpush.android.service.PushReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
android:enabled="true">
|
||||
<intent-filter android:priority="1000">
|
||||
<!--Required 显示通知栏 -->
|
||||
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
|
||||
@@ -154,21 +158,52 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<!-- since 1.8.0 option 可选项。用于同一设备中不同应用的 JPush 服务相互拉起的功能。 -->
|
||||
<!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->
|
||||
<service android:name="cn.jpush.android.service.DaemonService"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<!-- Required SDK核心功能 -->
|
||||
<activity android:name="cn.jpush.android.ui.PushActivity"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar"
|
||||
android:configChanges="orientation|keyboardHidden"
|
||||
android:exported="false" >
|
||||
<intent-filter>
|
||||
<action android:name="cn.jpush.android.intent.DaemonService" />
|
||||
<action android:name="cn.jpush.android.ui.PushActivity" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
</activity>
|
||||
|
||||
<!-- 通知广播接收器 -->
|
||||
<!-- SDK 核心功能-->
|
||||
<activity
|
||||
android:name="cn.jpush.android.ui.PopWinActivity"
|
||||
android:configChanges="orientation|keyboardHidden"
|
||||
android:exported="false"
|
||||
android:theme="@style/MyDialogStyle">
|
||||
<intent-filter>
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- Required SDK 核心功能 -->
|
||||
<service android:name="cn.jpush.android.service.DownloadService"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
</service>
|
||||
<!-- Required SDK核心功能-->
|
||||
<receiver android:name="cn.jpush.android.service.AlarmReceiver" />
|
||||
|
||||
<receiver android:name="cn.jiguang.cordova.push.JPushEventReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<!-- 插件通知广播接收器 -->
|
||||
<receiver
|
||||
android:name="cn.jiguang.cordova.push.JPushReceiver"
|
||||
android:enabled="true">
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="cn.jpush.android.intent.REGISTRATION" />
|
||||
<action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
|
||||
@@ -179,34 +214,17 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<!-- Required SDK核心功能-->
|
||||
<receiver
|
||||
android:name="cn.jpush.android.service.AlarmReceiver"
|
||||
android:exported="false" />
|
||||
|
||||
<!-- since 3.0.9 Required SDK 核心功能-->
|
||||
<provider
|
||||
android:authorities="$PACKAGE_NAME.DataProvider"
|
||||
android:name="cn.jpush.android.service.DataProvider"
|
||||
android:exported="true" />
|
||||
|
||||
<receiver android:name="cn.jiguang.cordova.push.JPushEventReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<!-- Required. Enable it you can get statistics data with channel -->
|
||||
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default" />
|
||||
<meta-data android:name="JPUSH_CHANNEL" android:value="$CHANNEL" />
|
||||
<meta-data android:name="JPUSH_APPKEY" android:value="$APP_KEY" />
|
||||
</config-file>
|
||||
|
||||
<lib-file src="src/android/libs/jpush-android-3.1.6.jar" />
|
||||
<lib-file src="src/android/libs/jpush-android-3.1.8.jar" />
|
||||
|
||||
<source-file src="src/android/JPushReceiver.java" target-dir="app/src/main/java/cn/jiguang/cordova/push" />
|
||||
<source-file src="src/android/JPushPlugin.java" target-dir="app/src/main/java/cn/jiguang/cordova/push" />
|
||||
<source-file src="src/android/JPushEventReceiver.java" target-dir="app/src/main/java/cn/jiguang/cordova/push" />
|
||||
<source-file src="src/android/JPushReceiver.java" target-dir="src/cn/jiguang/cordova/push" />
|
||||
<source-file src="src/android/JPushPlugin.java" target-dir="src/cn/jiguang/cordova/push" />
|
||||
<source-file src="src/android/JPushEventReceiver.java" target-dir="src/cn/jiguang/cordova/push" />
|
||||
|
||||
<resource-file src="src/android/res/drawable-hdpi/jpush_richpush_btn_selector.xml"
|
||||
target="res/drawable/jpush_richpush_btn_selector.xml" />
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package cn.jiguang.cordova.push;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.AppOpsManager;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.os.Build;
|
||||
@@ -20,22 +20,17 @@ import org.json.JSONObject;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import cn.jpush.android.api.BasicPushNotificationBuilder;
|
||||
import cn.jpush.android.api.JPushInterface;
|
||||
import cn.jpush.android.api.TagAliasCallback;
|
||||
import cn.jpush.android.data.JPushLocalNotification;
|
||||
import cn.jpush.android.service.JPushMessageReceiver;
|
||||
|
||||
public class JPushPlugin extends CordovaPlugin {
|
||||
|
||||
@@ -632,6 +627,16 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
void setGeofenceInterval(JSONArray data, CallbackContext callbackContext) throws JSONException {
|
||||
long interval = data.getLong(0);
|
||||
JPushInterface.setGeofenceInterval(this.cordova.getActivity(), interval);
|
||||
}
|
||||
|
||||
void setMaxGeofenceNumber(JSONArray data, CallbackContext callbackContext) throws JSONException {
|
||||
int maxNumber = data.getInt(0);
|
||||
JPushInterface.setMaxGeofenceNumber(mContext, maxNumber);
|
||||
}
|
||||
|
||||
private boolean isValidHour(int hour) {
|
||||
return !(hour < 0 || hour > 23);
|
||||
}
|
||||
@@ -673,35 +678,43 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
};
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.KITKAT)
|
||||
private boolean hasPermission(String appOpsServiceId) {
|
||||
|
||||
Context context = cordova.getActivity().getApplicationContext();
|
||||
AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
||||
ApplicationInfo appInfo = context.getApplicationInfo();
|
||||
if (Build.VERSION.SDK_INT >= 24) {
|
||||
NotificationManager mNotificationManager = (NotificationManager) context
|
||||
.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
return mNotificationManager.areNotificationsEnabled();
|
||||
} else {
|
||||
AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
||||
ApplicationInfo appInfo = context.getApplicationInfo();
|
||||
|
||||
String pkg = context.getPackageName();
|
||||
int uid = appInfo.uid;
|
||||
Class appOpsClazz;
|
||||
String pkg = context.getPackageName();
|
||||
int uid = appInfo.uid;
|
||||
Class appOpsClazz;
|
||||
|
||||
try {
|
||||
appOpsClazz = Class.forName(AppOpsManager.class.getName());
|
||||
Method checkOpNoThrowMethod = appOpsClazz.getMethod("checkOpNoThrow", Integer.TYPE, Integer.TYPE,
|
||||
String.class);
|
||||
Field opValue = appOpsClazz.getDeclaredField(appOpsServiceId);
|
||||
int value = opValue.getInt(Integer.class);
|
||||
Object result = checkOpNoThrowMethod.invoke(mAppOps, value, uid, pkg);
|
||||
return Integer.parseInt(result.toString()) == AppOpsManager.MODE_ALLOWED;
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
try {
|
||||
appOpsClazz = Class.forName(AppOpsManager.class.getName());
|
||||
Method checkOpNoThrowMethod = appOpsClazz.getMethod("checkOpNoThrow", Integer.TYPE, Integer.TYPE,
|
||||
String.class);
|
||||
Field opValue = appOpsClazz.getDeclaredField(appOpsServiceId);
|
||||
int value = opValue.getInt(Integer.class);
|
||||
Object result = checkOpNoThrowMethod.invoke(mAppOps, value, uid, pkg);
|
||||
return Integer.parseInt(result.toString()) == AppOpsManager.MODE_ALLOWED;
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import cn.jpush.android.api.JPushInterface;
|
||||
public class JPushReceiver extends BroadcastReceiver {
|
||||
|
||||
private static final List<String> IGNORED_EXTRAS_KEYS = Arrays.asList("cn.jpush.android.TITLE",
|
||||
"cn.jpush.android.MESSAGE", "cn.jpush.android.APPKEY", "cn.jpush.android.NOTIFICATION_CONTENT_TITLE");
|
||||
"cn.jpush.android.MESSAGE", "cn.jpush.android.APPKEY", "cn.jpush.android.NOTIFICATION_CONTENT_TITLE","key_show_entity","platform");
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
|
||||
Binary file not shown.
BIN
src/android/libs/jpush-android-3.1.8.jar
Executable file
BIN
src/android/libs/jpush-android-3.1.8.jar
Executable file
Binary file not shown.
0
src/android/res/drawable-hdpi/jpush_richpush_btn_selector.xml
Normal file → Executable file
0
src/android/res/drawable-hdpi/jpush_richpush_btn_selector.xml
Normal file → Executable file
0
src/android/res/drawable-hdpi/jpush_richpush_progressbar.xml
Normal file → Executable file
0
src/android/res/drawable-hdpi/jpush_richpush_progressbar.xml
Normal file → Executable file
0
src/android/res/layout/jpush_popwin_layout.xml
Normal file → Executable file
0
src/android/res/layout/jpush_popwin_layout.xml
Normal file → Executable file
0
src/android/res/layout/jpush_webview_layout.xml
Normal file → Executable file
0
src/android/res/layout/jpush_webview_layout.xml
Normal file → Executable file
0
src/android/res/values/jpush_style.xml
Normal file → Executable file
0
src/android/res/values/jpush_style.xml
Normal file → Executable file
@@ -395,13 +395,14 @@
|
||||
}
|
||||
|
||||
JPushNotificationTrigger *trigger = [[JPushNotificationTrigger alloc] init];
|
||||
// 由于 不支持 0 作为传入参数,在传入参数基础上添加一个极小的时间于 android 端保持一致。
|
||||
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0) {
|
||||
if (delay) {
|
||||
trigger.timeInterval = [delay doubleValue];
|
||||
trigger.timeInterval = [delay doubleValue] + 0.000001;
|
||||
}
|
||||
} else {
|
||||
if (delay) {
|
||||
trigger.fireDate = [NSDate dateWithTimeIntervalSinceNow:[[command argumentAtIndex:0] intValue]];
|
||||
trigger.fireDate = [NSDate dateWithTimeIntervalSinceNow:[[command argumentAtIndex:0] doubleValue] + 0.001];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* Copyright (c) 2011 ~ 2017 Shenzhen HXHG. All rights reserved.
|
||||
*/
|
||||
|
||||
#define JPUSH_VERSION_NUMBER 3.1.0
|
||||
#define JPUSH_VERSION_NUMBER 3.1.2
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
@class UNNotificationRequest;
|
||||
@class UNNotification;
|
||||
@protocol JPUSHRegisterDelegate;
|
||||
@protocol JPUSHGeofenceDelegate;
|
||||
|
||||
typedef void (^JPUSHTagsOperationCompletion)(NSInteger iResCode, NSSet *iTags, NSInteger seq);
|
||||
typedef void (^JPUSHTagValidOperationCompletion)(NSInteger iResCode, NSSet *iTags, NSInteger seq, BOOL isBind);
|
||||
@@ -40,6 +41,11 @@ typedef NS_OPTIONS(NSUInteger, JPAuthorizationOptions) {
|
||||
JPAuthorizationOptionBadge = (1 << 0), // the application may badge its icon upon a notification being received
|
||||
JPAuthorizationOptionSound = (1 << 1), // the application may play a sound upon a notification being received
|
||||
JPAuthorizationOptionAlert = (1 << 2), // the application may display an alert upon a notification being received
|
||||
JPAuthorizationOptionCarPlay = (1 << 3), // The ability to display notifications in a CarPlay environment.
|
||||
JPAuthorizationOptionCriticalAlert NS_AVAILABLE_IOS(12.0) = (1 << 4) , //The ability to play sounds for critical alerts.
|
||||
JPAuthorizationOptionProvidesAppNotificationSettings NS_AVAILABLE_IOS(12.0) = (1 << 5) , //An option indicating the system should display a button for in-app notification settings.
|
||||
JPAuthorizationOptionProvisional NS_AVAILABLE_IOS(12.0) = (1 << 6) , //The ability to post noninterrupting notifications provisionally to the Notification Center.
|
||||
|
||||
};
|
||||
|
||||
/*!
|
||||
@@ -72,6 +78,17 @@ typedef NS_OPTIONS(NSUInteger, JPAuthorizationOptions) {
|
||||
|
||||
@end
|
||||
|
||||
/*!
|
||||
* 推送通知声音实体类
|
||||
* iOS10以上有效
|
||||
*/
|
||||
@interface JPushNotificationSound : NSObject <NSCopying, NSCoding>
|
||||
@property (nonatomic, copy) NSString *soundName; //普通通知铃声
|
||||
@property (nonatomic, copy) NSString *criticalSoundName NS_AVAILABLE_IOS(12.0); //警告通知铃声
|
||||
@property (nonatomic, assign) float criticalSoundVolume NS_AVAILABLE_IOS(12.0); //警告通知铃声音量,有效值在0~1之间,默认为1
|
||||
@end
|
||||
|
||||
|
||||
/*!
|
||||
* 推送内容实体类
|
||||
*/
|
||||
@@ -85,12 +102,16 @@ typedef NS_OPTIONS(NSUInteger, JPAuthorizationOptions) {
|
||||
@property (nonatomic, copy) NSString *categoryIdentifier; // 行为分类标识
|
||||
@property (nonatomic, copy) NSDictionary *userInfo; // 本地推送时可以设置userInfo来增加附加信息,远程推送时设置的payload推送内容作为此userInfo
|
||||
@property (nonatomic, copy) NSString *sound; // 声音名称,不设置则为默认声音
|
||||
@property (nonatomic, copy) JPushNotificationSound *soundSetting NS_AVAILABLE_IOS(10.0); //推送声音实体
|
||||
@property (nonatomic, copy) NSArray *attachments NS_AVAILABLE_IOS(10_0); // 附件,iOS10以上有效,需要传入UNNotificationAttachment对象数组类型
|
||||
@property (nonatomic, copy) NSString *threadIdentifier NS_AVAILABLE_IOS(10_0); // 线程或与推送请求相关对话的标识,iOS10以上有效,可用来对推送进行分组
|
||||
@property (nonatomic, copy) NSString *launchImageName NS_AVAILABLE_IOS(10_0); // 启动图片名,iOS10以上有效,从推送启动时将会用到
|
||||
@property (nonatomic, copy) NSString *summaryArgument NS_AVAILABLE_IOS(12.0); //插入到通知摘要中的部分参数。iOS12以上有效。
|
||||
@property (nonatomic, assign) NSUInteger summaryArgumentCount NS_AVAILABLE_IOS(12.0); //插入到通知摘要中的项目数。iOS12以上有效。
|
||||
|
||||
@end
|
||||
|
||||
|
||||
/*!
|
||||
* 推送触发方式实体类
|
||||
* 注:dateComponents、timeInterval、region在iOS10以上可选择其中一个参数传入有效值,如果同时传入值会根据优先级I、II、III使其中一种触发方式生效,fireDate为iOS10以下根据时间触发时须传入的参数
|
||||
@@ -350,6 +371,19 @@ typedef NS_OPTIONS(NSUInteger, JPAuthorizationOptions) {
|
||||
*/
|
||||
+ (void)setLocation:(CLLocation *)location;
|
||||
|
||||
/**
|
||||
设置地理围栏的最大个数
|
||||
默认值为 10 ,iOS系统默认地理围栏最大个数为20
|
||||
@param count 个数 count
|
||||
*/
|
||||
+ (void)setGeofenecMaxCount:(NSInteger)count;
|
||||
/**
|
||||
注册地理围栏的代理
|
||||
|
||||
@param delegate 代理
|
||||
@param launchOptions app启动完成是收到的字段参数
|
||||
*/
|
||||
+ (void)registerLbsGeofenceDelegate:(id<JPUSHGeofenceDelegate>)delegate withLaunchOptions:(NSDictionary *)launchOptions;
|
||||
|
||||
///----------------------------------------------------
|
||||
/// @name Local Notification 本地通知
|
||||
@@ -608,4 +642,33 @@ callbackSelector:(SEL)cbSelector
|
||||
*/
|
||||
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler;
|
||||
|
||||
/*
|
||||
* @brief handle UserNotifications.framework [openSettingsForNotification:]
|
||||
* @param center [UNUserNotificationCenter currentNotificationCenter] 新特性用户通知中心
|
||||
* @param notification 当前管理的通知对象
|
||||
*/
|
||||
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center openSettingsForNotification:(nullable UNNotification *)notification NS_AVAILABLE_IOS(12.0);
|
||||
|
||||
@end
|
||||
|
||||
@protocol JPUSHGeofenceDelegate <NSObject>
|
||||
|
||||
/**
|
||||
进入地理围栏区域
|
||||
|
||||
@param geofenceId 地理围栏id
|
||||
@param userInfo 地理围栏触发时返回的信息
|
||||
@param error 错误信息
|
||||
*/
|
||||
- (void)jpushGeofenceIdentifer:(NSString * _Nonnull)geofenceId didEnterRegion:(NSDictionary * _Nullable)userInfo error:(NSError * _Nullable)error;
|
||||
|
||||
/**
|
||||
离开地理围栏区域
|
||||
|
||||
@param geofenceId 地理围栏id
|
||||
@param userInfo 地理围栏触发时返回的信息
|
||||
@param error 错误信息
|
||||
*/
|
||||
- (void)jpushGeofenceIdentifer:(NSString * _Nonnull)geofenceId didExitRegion:(NSDictionary * _Nullable)userInfo error:(NSError * _Nullable)error;
|
||||
|
||||
@end
|
||||
|
||||
Binary file not shown.
@@ -463,6 +463,18 @@ JPushPlugin.prototype.setPushTime = function(weekdays, startHour, endHour) {
|
||||
}
|
||||
};
|
||||
|
||||
JPushPlugin.prototype.setGeofenceInterval = function(interval) {
|
||||
if (device.platform === "Android") {
|
||||
this.callNative("setGeofenceInterval", [interval], null);
|
||||
}
|
||||
};
|
||||
|
||||
JPushPlugin.prototype.setMaxGeofenceNumber = function(maxNumber) {
|
||||
if (device.platform === "Android") {
|
||||
this.callNative("setMaxGeofenceNumber", [maxNumber], null);
|
||||
}
|
||||
};
|
||||
|
||||
if (!window.plugins) {
|
||||
window.plugins = {};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user