mirror of
https://github.com/jpush/jpush-phonegap-plugin.git
synced 2026-04-19 00:03:45 +08:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2fab3a9e60 | |||
| a032906b1f | |||
| d362ee788b | |||
| 50588d593c | |||
| ea06f04415 | |||
| e4d8752065 | |||
| 9765352969 | |||
| 0589ac82ea | |||
| ff1fa91d67 | |||
| 14f91aacf8 | |||
| 15c403a471 | |||
| 8b0b8cc26f | |||
| 78e2e9736e | |||
| a8daded81b | |||
| 18f69303ce | |||
| 390fbb9fda | |||
| 3a4ceb32ce | |||
| 20ab9319bc | |||
| ef33ad5a85 | |||
| c355cd2b9f | |||
| 2463368cc1 | |||
| 7279fdd0ce | |||
| 75cb7dfe97 | |||
| 3b25b73adf | |||
| 2b2189f6cb | |||
| a48915f115 | |||
| 1fe6d0da8c | |||
| 42790c71f3 |
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://travis-ci.org/jpush/jpush-phonegap-plugin)
|
||||
[]()
|
||||
[](https://github.com/jpush/jpush-phonegap-plugin/releases)
|
||||
[](https://github.com/jpush/jpush-phonegap-plugin/releases)
|
||||
[](https://github.com/jpush/jpush-phonegap-plugin)
|
||||
[](http://weibo.com/jpush?refer_flag=1001030101_&is_all=1)
|
||||
|
||||
@@ -62,10 +62,22 @@ Android 的推送通过长连接的方式实现,只有在连接保持的情况
|
||||
或者自己实现应用保活,网上有很多相关文章(不推荐)。
|
||||
|
||||
> 为什么 QQ、微信之类的应用退出后还能够收到通知?因为这些大厂应用,手机厂商默认都会加入自启动白名单中,也不会在应用退出后杀死它们的相关服务。
|
||||
如果你多加留意,就会发现非大厂的应用如果你一段时间不用都是收不到推送的。
|
||||
> 如果你多加留意,就会发现非大厂的应用如果你一段时间不用都是收不到推送的。
|
||||
|
||||
### iOS
|
||||
|
||||
#### 打包时遇到 i386 打包失败怎么办?
|
||||
|
||||
```
|
||||
cordova platform update ios
|
||||
```
|
||||
|
||||
#### ionic 2 如何调用 API?
|
||||
|
||||
[issue 179](https://github.com/jpush/jpush-phonegap-plugin/issues/179)
|
||||
|
||||
#### PushConfig.plist 文件中的字段都是什么意思?
|
||||
|
||||
- Appkey:应用标识。
|
||||
- Channel:渠道标识。
|
||||
- IsProduction:是否生产环境。
|
||||
|
||||
+20
-10
@@ -1,9 +1,10 @@
|
||||
# Android API简介
|
||||
# Android API 简介
|
||||
|
||||
- [注册成功事件](#注册成功事件)
|
||||
- [接收通知时获得通知的内容](#接收通知时获得通知的内容)
|
||||
- [打开通知时获得通知的内容](#打开通知时获得通知的内容)
|
||||
- [收到自定义消息时获取消息的内容](#收到自定义消息时获取消息的内容)
|
||||
- [获取集成日志](#获取集成日志)
|
||||
- [获取集成日志(同时适用于 iOS)](#获取集成日志同时适用于-ios)
|
||||
- [接收消息和点击通知事件](#接收消息和点击通知事件)
|
||||
- [统计分析](#统计分析)
|
||||
- [清除通知](#清除通知)
|
||||
@@ -14,6 +15,18 @@
|
||||
- [本地通知](#本地通知)
|
||||
- [富媒体页面 JavaScript 回调 API](#富媒体页面-javascript-回调-api)
|
||||
|
||||
## 注册成功事件
|
||||
### jpush.receiveRegistrationId
|
||||
集成了 JPush SDK 的应用程序在第一次成功注册到 JPush 服务器时,JPush 服务器会给客户端返回一个唯一的该设备的标识 - RegistrationID。
|
||||
就会触发这个事件(注意只有第一次会触发该事件,之后如果想要取到 registrationId,可以直接调用 *getRegistrationID* 方法)。
|
||||
|
||||
#### 代码示例
|
||||
```Javascript
|
||||
document.addEventListener('jpush.receiveRegistrationId', function (event) {
|
||||
console.log(event.registrationId)
|
||||
}, false)
|
||||
```
|
||||
|
||||
## 接收通知时获得通知的内容
|
||||
|
||||
- 内容:
|
||||
@@ -39,7 +52,7 @@
|
||||
- 附加字段:
|
||||
window.plugins.jPushPlugin.receiveMessage.extras.yourKey
|
||||
|
||||
## 获取集成日志
|
||||
## 获取集成日志(同时适用于 iOS)
|
||||
|
||||
### API - setDebugMode
|
||||
|
||||
@@ -55,7 +68,6 @@
|
||||
- true 显示集成日志。
|
||||
- false 不显示集成日志。
|
||||
|
||||
|
||||
## 接收消息和点击通知事件
|
||||
### API - receiveMessageInAndroidCallback
|
||||
|
||||
@@ -82,7 +94,6 @@
|
||||
|
||||
- data: js 字符串。
|
||||
|
||||
|
||||
## 统计分析
|
||||
|
||||
### API - onResume / onPause
|
||||
@@ -250,28 +261,27 @@ JPush SDK 提供了 2 个用于定制通知栏样式的构建类:
|
||||
|
||||
## 本地通知
|
||||
### API - addLocalNotification, removeLocalNotification, clearLocalNotifications
|
||||
|
||||
本地通知 API 不依赖于网络,无网条件下依旧可以触发。
|
||||
|
||||
本地通知与网络推送的通知是相互独立的,不受保留最近通知条数上限的限制。
|
||||
|
||||
本地通知的定时时间是自发送时算起的,不受中间关机等操作的影响。
|
||||
|
||||
三个接口的功能分别为:添加一个本地通知,删除一个本地通知,删除所有的本地通知。
|
||||
三个接口的功能分别为:添加一个本地通知,清除一个本地通知,清除所有的本地通知。
|
||||
|
||||
#####接口定义
|
||||
#### 接口定义
|
||||
|
||||
window.plugins.jPushPlugin.addLocalNotification(builderId, content, title,
|
||||
notificaitonID, broadcastTime, extras)
|
||||
window.plugins.jPushPlugin.removeLocalNotification(notificationID)
|
||||
window.plugins.jPushPlugin.clearLocalNotifications()
|
||||
window.plugins.jPushPlugin.clearLocalNotifications() // 同时适用于 iOS
|
||||
|
||||
#### 参数说明
|
||||
|
||||
- builderId: 设置本地通知样式。
|
||||
- content: 设置本地通知的 content。
|
||||
- title: 设置本地通知的 title。
|
||||
- notificaitonID: 设置本地通知的 ID。
|
||||
- notificaitonID: 设置本地通知的 ID(不要为 0)。
|
||||
- broadcastTime: 设置本地通知触发时间,为距离当前时间的数值,单位是毫秒。
|
||||
- extras: 设置额外的数据信息 extras 为 json 字符串。
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 通用 API 说明
|
||||
# 通用 API 说明(同时适用于 Android 和 iOS 系统)
|
||||
|
||||
- [停止与恢复推送服务](#停止与恢复推送服务)
|
||||
- [获取 RegistrationID](#获取-registrationid)
|
||||
@@ -45,7 +45,6 @@
|
||||
|
||||
window.plugins.jPushPlugin.stopPush()
|
||||
|
||||
|
||||
### API - resumePush
|
||||
|
||||
恢复推送服务。调用了此 API 后:
|
||||
@@ -72,7 +71,6 @@
|
||||
|
||||
+ 平台检查推送服务是否注册。
|
||||
|
||||
|
||||
#### 接口定义
|
||||
|
||||
window.plugins.jPushPlugin.isPushStopped(callback)
|
||||
@@ -91,6 +89,20 @@
|
||||
}
|
||||
})
|
||||
|
||||
## 开启 Debug 模式
|
||||
### API - setDebugMode
|
||||
用于开启 Debug 模式,显示更多的日志信息。
|
||||
|
||||
#### 接口定义
|
||||
|
||||
JPushPlugin.prototype.setDebugMode(isOpen)
|
||||
|
||||
#### 参数说明
|
||||
- isOpen: true,开启 Debug 模式;false,关闭 Debug 模式,不显示错误信息之外的日志信息。
|
||||
|
||||
#### 代码示例
|
||||
|
||||
window.plugins.jPushPlugin.setDebugMode(true)
|
||||
|
||||
## 获取 RegistrationID
|
||||
|
||||
@@ -266,7 +278,7 @@ JPush SDK 会以广播的形式发送 RegistrationID 到应用程序。
|
||||
}
|
||||
alert("open Notificaiton:" + alertContent)
|
||||
}, false)
|
||||
|
||||
|
||||
|
||||
> ps:点击通知后传递的 json object 保存在 window.plugins.jPushPlugin.receiveNotification,直接访问即可,字段示例,根据实际推送情况,可能略有差别,请注意。
|
||||
|
||||
|
||||
+36
-37
@@ -1,39 +1,38 @@
|
||||
{
|
||||
"name": "jpush-phonegap-plugin",
|
||||
"version": "3.0.3",
|
||||
"description": "JPush for cordova plugin",
|
||||
"cordova": {
|
||||
"id": "jpush-phonegap-plugin",
|
||||
"platforms": [
|
||||
"ios",
|
||||
"android"
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/jpush/jpush-phonegap-plugin.git"
|
||||
},
|
||||
"keywords": [
|
||||
"JPush",
|
||||
"push",
|
||||
"Push",
|
||||
"ecosystem:cordova",
|
||||
"cordova-ios",
|
||||
"cordova-android"
|
||||
],
|
||||
"engines": [
|
||||
{
|
||||
"name": "cordova",
|
||||
"version": ">=3.0"
|
||||
}
|
||||
],
|
||||
"peerDependencies": {
|
||||
"cordova-plugin-device": ">=1.0.0"
|
||||
},
|
||||
"author": "JiGuang",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/jpush/jpush-phonegap-plugin/issues"
|
||||
},
|
||||
"homepage": "https://github.com/jpush/jpush-phonegap-plugin#readme"
|
||||
"name": "jpush-phonegap-plugin",
|
||||
"version": "3.1.6",
|
||||
"description": "JPush for cordova plugin",
|
||||
"cordova": {
|
||||
"id": "jpush-phonegap-plugin",
|
||||
"platforms": [
|
||||
"ios",
|
||||
"android"
|
||||
]
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/jpush/jpush-phonegap-plugin.git"
|
||||
},
|
||||
"keywords": [
|
||||
"JPush",
|
||||
"push",
|
||||
"Push",
|
||||
"ecosystem:cordova",
|
||||
"cordova-ios",
|
||||
"cordova-android"
|
||||
],
|
||||
"engines": [{
|
||||
"name": "cordova",
|
||||
"version": ">=3.0"
|
||||
}],
|
||||
"dependencies": {
|
||||
"cordova-plugin-device": "*",
|
||||
"cordova-plugin-jcore": "1.1.4"
|
||||
},
|
||||
"author": "JiGuang",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/jpush/jpush-phonegap-plugin/issues"
|
||||
},
|
||||
"homepage": "https://github.com/jpush/jpush-phonegap-plugin#readme"
|
||||
}
|
||||
|
||||
+16
-15
@@ -2,9 +2,9 @@
|
||||
<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.0.3">
|
||||
version="3.1.6">
|
||||
|
||||
<name>JPush Plugin</name>
|
||||
<name>JPush</name>
|
||||
<description>JPush for cordova plugin</description>
|
||||
<author>JPush</author>
|
||||
<keywords>JPush,push</keywords>
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
<!-- dependencies -->
|
||||
<dependency id="cordova-plugin-device" />
|
||||
<dependency id="cordova-plugin-jcore" />
|
||||
|
||||
<js-module src="www/JPushPlugin.js" name="JPushPlugin">
|
||||
<clobbers target="JPush" />
|
||||
@@ -37,8 +38,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.0.1.a" framework="true" />
|
||||
<source-file src="src/ios/lib/jcore-ios-1.1.0.a" framework="true" />
|
||||
<source-file src="src/ios/lib/jpush-ios-3.0.5.a" framework="true" />
|
||||
<resource-file src="src/ios/JPushConfig.plist" />
|
||||
|
||||
<framework src="CFNetwork.framework" weak="true" />
|
||||
@@ -111,7 +111,8 @@
|
||||
<!-- Required SDK 核心功能-->
|
||||
<service android:name="cn.jpush.android.service.PushService"
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
android:exported="false"
|
||||
android:process=":remote">
|
||||
<intent-filter>
|
||||
<action android:name="cn.jpush.android.intent.REGISTER" />
|
||||
<action android:name="cn.jpush.android.intent.REPORT" />
|
||||
@@ -122,10 +123,11 @@
|
||||
|
||||
<!-- Required SDK核心功能-->
|
||||
<receiver android:name="cn.jpush.android.service.PushReceiver"
|
||||
android:enabled="true">
|
||||
android:enabled="true"
|
||||
android:exported="false">
|
||||
<intent-filter android:priority="1000">
|
||||
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
|
||||
<!--Required 显示通知栏 -->
|
||||
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
@@ -136,6 +138,7 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.PACKAGE_ADDED" />
|
||||
<action android:name="android.intent.action.PACKAGE_REMOVED" />
|
||||
<data android:scheme="package" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
@@ -172,20 +175,18 @@
|
||||
<category android:name="$PACKAGE_NAME" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<!-- Required SDK核心功能-->
|
||||
<receiver android:name="cn.jpush.android.service.AlarmReceiver" />
|
||||
<receiver
|
||||
android:name="cn.jpush.android.service.AlarmReceiver"
|
||||
android:exported="false" />
|
||||
|
||||
<!-- 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_APPKEY" android:value="$APP_KEY" />
|
||||
</config-file>
|
||||
|
||||
<source-file src="src/android/libs/jpush-android_v3.0.1.jar" target-dir="libs" />
|
||||
<source-file src="src/android/libs/jcore-android_v1.1.0.jar" target-dir="libs" />
|
||||
<source-file src="src/android/libs/armeabi/libjcore110.so" target-dir="libs/armeabi" />
|
||||
<source-file src="src/android/libs/armeabi-v7a/libjcore110.so" target-dir="libs/armeabi-v7a" />
|
||||
<source-file src="src/android/libs/arm64-v8a/libjcore110.so" target-dir="libs/arm64-v8a" />
|
||||
<source-file src="src/android/libs/x86/libjcore110.so" target-dir="libs/x86" />
|
||||
<source-file src="src/android/libs/x86_64/libjcore110.so" target-dir="libs/x86_64" />
|
||||
<source-file src="src/android/libs/jpush-android_v3.0.6.jar" target-dir="libs" />
|
||||
|
||||
<source-file src="src/android/MyReceiver.java" target-dir="src/cn/jpush/phonegap" />
|
||||
<source-file src="src/android/JPushPlugin.java" target-dir="src/cn/jpush/phonegap" />
|
||||
|
||||
@@ -262,6 +262,26 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
JPushPlugin.notificationAlert = null;
|
||||
}
|
||||
|
||||
static void transmitReceiveRegistrationId(String rId) {
|
||||
if (instance == null) {
|
||||
return;
|
||||
}
|
||||
JSONObject data = new JSONObject();
|
||||
try {
|
||||
data.put("registrationId", rId);
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
String format = "window.plugins.jPushPlugin.receiveRegistrationIdInAndroidCallback(%s);";
|
||||
final String js = String.format(format, data.toString());
|
||||
cordovaActivity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
instance.webView.loadUrl("javascript:" + js);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(final String action, final JSONArray data,
|
||||
final CallbackContext callbackContext) throws JSONException {
|
||||
@@ -479,6 +499,7 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
callbackContext.error("error reading id json");
|
||||
return;
|
||||
}
|
||||
if (notificationId != -1) {
|
||||
JPushInterface.clearNotificationById(this.cordova.getActivity(), notificationId);
|
||||
@@ -617,7 +638,6 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
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();
|
||||
@@ -632,5 +652,4 @@ public class JPushPlugin extends CordovaPlugin {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+12
-20
@@ -1,18 +1,18 @@
|
||||
package cn.jpush.phonegap;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.jpush.android.api.JPushInterface;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
|
||||
public class MyReceiver extends BroadcastReceiver {
|
||||
private static String TAG = "JPushPlugin";
|
||||
|
||||
private static final List<String> IGNORED_EXTRAS_KEYS =
|
||||
Arrays.asList(
|
||||
"cn.jpush.android.TITLE",
|
||||
@@ -24,18 +24,15 @@ public class MyReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(action)) {
|
||||
if (action.equals(JPushInterface.ACTION_REGISTRATION_ID)) {
|
||||
String rId = intent.getStringExtra(JPushInterface.EXTRA_REGISTRATION_ID);
|
||||
JPushPlugin.transmitReceiveRegistrationId(rId);
|
||||
} else if (action.equals(JPushInterface.ACTION_MESSAGE_RECEIVED)) {
|
||||
handlingMessageReceive(intent);
|
||||
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(action)) {
|
||||
} else if (action.equals(JPushInterface.ACTION_NOTIFICATION_RECEIVED)) {
|
||||
handlingNotificationReceive(context, intent);
|
||||
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(action)) {
|
||||
} else if (action.equals(JPushInterface.ACTION_NOTIFICATION_OPENED)) {
|
||||
handlingNotificationOpen(context, intent);
|
||||
} else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(action)) {
|
||||
// 当在 HTML 页面中调用 JPushWeb.triggerNativeAction(String params) 方法时触发此方法,
|
||||
// 再进行相关的操作。
|
||||
|
||||
} else {
|
||||
Log.d(TAG, "Unhandled intent - " + action);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,8 +43,6 @@ public class MyReceiver extends BroadcastReceiver {
|
||||
}
|
||||
|
||||
private void handlingNotificationOpen(Context context, Intent intent) {
|
||||
Log.i(TAG, "---------------- handlingNotificationOpen");
|
||||
|
||||
String title = intent.getStringExtra(JPushInterface.EXTRA_NOTIFICATION_TITLE);
|
||||
JPushPlugin.openNotificationTitle = title;
|
||||
|
||||
@@ -60,15 +55,13 @@ public class MyReceiver extends BroadcastReceiver {
|
||||
JPushPlugin.transmitNotificationOpen(title, alert, extras);
|
||||
|
||||
Intent launch = context.getPackageManager().getLaunchIntentForPackage(
|
||||
context.getPackageName());
|
||||
context.getPackageName());
|
||||
launch.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||
launch.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
context.startActivity(launch);
|
||||
}
|
||||
|
||||
private void handlingNotificationReceive(Context context, Intent intent) {
|
||||
Log.i(TAG, "---------------- handlingNotificationReceive");
|
||||
|
||||
Intent launch = context.getPackageManager().getLaunchIntentForPackage(
|
||||
context.getPackageName());
|
||||
launch.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||
@@ -99,5 +92,4 @@ public class MyReceiver extends BroadcastReceiver {
|
||||
}
|
||||
return extrasMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -28,29 +28,27 @@
|
||||
return [self init_plus];
|
||||
}
|
||||
|
||||
NSDictionary *_launchOptions;
|
||||
-(void)fireOpenNotification:(NSTimer*)timer{
|
||||
if (SharedJPushPlugin) {
|
||||
[JPushPlugin fireDocumentEvent:JPushDocumentEvent_OpenNotification jsString:[timer.userInfo toJsonString]];
|
||||
[timer invalidate];
|
||||
}
|
||||
}
|
||||
|
||||
NSDictionary *_launchOptions;
|
||||
-(void)applicationDidLaunch:(NSNotification *)notification{
|
||||
|
||||
|
||||
if (notification) {
|
||||
if (notification.userInfo) {
|
||||
NSDictionary *userInfo1 = [notification.userInfo valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
|
||||
if (userInfo1.count > 0) {
|
||||
[NSTimer scheduledTimerWithTimeInterval:0.1 repeats:YES block:^(NSTimer * _Nonnull timer) {
|
||||
if (SharedJPushPlugin) {
|
||||
[JPushPlugin fireDocumentEvent:JPushDocumentEvent_OpenNotification jsString:[userInfo1 toJsonString]];
|
||||
[timer invalidate];
|
||||
}
|
||||
}];
|
||||
[NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(fireOpenNotification:) userInfo:userInfo1 repeats:YES];
|
||||
}
|
||||
|
||||
NSDictionary *userInfo2 = [notification.userInfo valueForKey:UIApplicationLaunchOptionsLocalNotificationKey];
|
||||
if (userInfo2.count > 0) {
|
||||
[NSTimer scheduledTimerWithTimeInterval:0.1 repeats:YES block:^(NSTimer * _Nonnull timer) {
|
||||
if (SharedJPushPlugin) {
|
||||
[JPushPlugin fireDocumentEvent:JPushDocumentEvent_OpenNotification jsString:[userInfo2 toJsonString]];
|
||||
[timer invalidate];
|
||||
}
|
||||
}];
|
||||
[NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(fireOpenNotification:) userInfo:userInfo2 repeats:YES];
|
||||
}
|
||||
}
|
||||
[JPUSHService setDebugMode];
|
||||
@@ -64,7 +62,6 @@ NSDictionary *_launchOptions;
|
||||
if (![delay boolValue]) {
|
||||
[self startJPushSDK];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* Copyright (c) 2011 ~ 2017 Shenzhen HXHG. All rights reserved.
|
||||
*/
|
||||
|
||||
#define JPUSH_VERSION_NUMBER 3.0.1
|
||||
#define JPUSH_VERSION_NUMBER 3.0.5
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@@ -456,7 +456,7 @@ callbackSelector:(SEL)cbSelector
|
||||
*
|
||||
* SDK 默认开启的日志级别为: Info. 只显示必要的信息, 不打印调试日志.
|
||||
*
|
||||
* 调用本接口可打开日志级别为: Debug, 打印调试日志.
|
||||
* 请在SDK启动后调用本接口,调用本接口可打开日志级别为: Debug, 打印调试日志.
|
||||
*/
|
||||
+ (void)setDebugMode;
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+157
-147
@@ -7,51 +7,64 @@ JPushPlugin.prototype.openNotification = {}
|
||||
JPushPlugin.prototype.receiveNotification = {}
|
||||
|
||||
JPushPlugin.prototype.isPlatformIOS = function () {
|
||||
var isPlatformIOS = device.platform == 'iPhone' ||
|
||||
var isPlatformIOS = (device.platform == 'iPhone' ||
|
||||
device.platform == 'iPad' ||
|
||||
device.platform == 'iPod touch' ||
|
||||
device.platform == 'iOS'
|
||||
device.platform == 'iOS')
|
||||
return isPlatformIOS
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.error_callback = function (msg) {
|
||||
JPushPlugin.prototype.errorCallback = function (msg) {
|
||||
console.log('Javascript Callback Error: ' + msg)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.call_native = function (name, args, callback) {
|
||||
ret = cordova.exec(callback, this.error_callback, 'JPushPlugin', name, args)
|
||||
return ret
|
||||
JPushPlugin.prototype.callNative = function (name, args, successCallback) {
|
||||
cordova.exec(successCallback, this.errorCallback, 'JPushPlugin', name, args)
|
||||
}
|
||||
|
||||
// public methods
|
||||
// Common methods
|
||||
JPushPlugin.prototype.init = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('initial', [], null)
|
||||
this.callNative('initial', [], null)
|
||||
} else {
|
||||
this.call_native('init', [], null)
|
||||
this.callNative('init', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.getRegistrationID = function (callback) {
|
||||
this.call_native('getRegistrationID', [], callback)
|
||||
JPushPlugin.prototype.setDebugMode = function (mode) {
|
||||
if (device.platform === 'Android') {
|
||||
this.callNative('setDebugMode', [mode], null)
|
||||
} else {
|
||||
if (mode === true) {
|
||||
this.setDebugModeFromIos()
|
||||
} else {
|
||||
this.setLogOFF()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.getRegistrationID = function (successCallback) {
|
||||
this.callNative('getRegistrationID', [], successCallback)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.stopPush = function () {
|
||||
this.call_native('stopPush', [], null)
|
||||
this.callNative('stopPush', [], null)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.resumePush = function () {
|
||||
this.call_native('resumePush', [], null)
|
||||
this.callNative('resumePush', [], null)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.isPushStopped = function (callback) {
|
||||
this.call_native('isPushStopped', [], callback)
|
||||
JPushPlugin.prototype.isPushStopped = function (successCallback) {
|
||||
this.callNative('isPushStopped', [], successCallback)
|
||||
}
|
||||
|
||||
// iOS methods
|
||||
|
||||
JPushPlugin.prototype.startJPushSDK = function () {
|
||||
this.call_native('startJPushSDK', [] , null)
|
||||
JPushPlugin.prototype.clearLocalNotifications = function () {
|
||||
if (device.platform === 'Android') {
|
||||
this.callNative('clearLocalNotifications', [], null)
|
||||
} else {
|
||||
this.clearAllLocalNotifications()
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setTagsWithAlias = function (tags, alias) {
|
||||
@@ -65,100 +78,15 @@ JPushPlugin.prototype.setTagsWithAlias = function (tags, alias) {
|
||||
}
|
||||
var arrayTagWithAlias = [tags]
|
||||
arrayTagWithAlias.unshift(alias)
|
||||
this.call_native('setTagsWithAlias', arrayTagWithAlias, null)
|
||||
this.callNative('setTagsWithAlias', arrayTagWithAlias, null)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setTags = function (tags) {
|
||||
this.call_native('setTags', tags, null)
|
||||
this.callNative('setTags', tags, null)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setAlias = function (alias) {
|
||||
this.call_native('setAlias', [alias], null)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setBadge = function (value) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('setBadge', [value], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.resetBadge = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('resetBadge', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setDebugModeFromIos = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('setDebugModeFromIos', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setLogOFF = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('setLogOFF', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setCrashLogON = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('crashLogON', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.addLocalNotificationForIOS = function (delayTime, content,
|
||||
badge, notificationID, extras) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('setLocalNotification', [delayTime, content, badge, notificationID, extras], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.deleteLocalNotificationWithIdentifierKeyInIOS = function (identifierKey) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('deleteLocalNotificationWithIdentifierKey', [identifierKey], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.clearAllLocalNotifications = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('clearAllLocalNotifications', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setLocation = function (latitude, longitude) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('setLocation', [latitude, longitude], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.startLogPageView = function (pageName) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('startLogPageView', [pageName], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.stopLogPageView = function (pageName) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('stopLogPageView', [pageName], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.beginLogPageView = function (pageName, duration) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('beginLogPageView', [pageName, duration], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setApplicationIconBadgeNumber = function (badge) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('setApplicationIconBadgeNumber', [badge], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.getApplicationIconBadgeNumber = function (callback) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('getApplicationIconBadgeNumber', [], callback)
|
||||
}
|
||||
this.callNative('setAlias', [alias], null)
|
||||
}
|
||||
|
||||
// 判断系统设置中是否对本应用启用通知。
|
||||
@@ -169,41 +97,134 @@ JPushPlugin.prototype.getApplicationIconBadgeNumber = function (callback) {
|
||||
// UIRemoteNotificationTypeAlert = 1 << 2,
|
||||
// UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3,
|
||||
// Android: 返回值 1 代表通知启用、0: 通知关闭。
|
||||
JPushPlugin.prototype.getUserNotificationSettings = function (callback) {
|
||||
JPushPlugin.prototype.getUserNotificationSettings = function (successCallback) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.call_native('getUserNotificationSettings', [], callback)
|
||||
this.callNative('getUserNotificationSettings', [], successCallback)
|
||||
} else if (device.platform == 'Android') {
|
||||
this.call_native('areNotificationEnabled', [], callback)
|
||||
this.callNative('areNotificationEnabled', [], successCallback)
|
||||
}
|
||||
}
|
||||
|
||||
// iOS methods
|
||||
|
||||
JPushPlugin.prototype.startJPushSDK = function () {
|
||||
this.callNative('startJPushSDK', [] , null)
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setBadge = function (value) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('setBadge', [value], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.resetBadge = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('resetBadge', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setDebugModeFromIos = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('setDebugModeFromIos', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setLogOFF = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('setLogOFF', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setCrashLogON = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('crashLogON', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.addLocalNotificationForIOS = function (delayTime, content,
|
||||
badge, notificationID, extras) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('setLocalNotification', [delayTime, content, badge, notificationID, extras], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.deleteLocalNotificationWithIdentifierKeyInIOS = function (identifierKey) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('deleteLocalNotificationWithIdentifierKey', [identifierKey], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.clearAllLocalNotifications = function () {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('clearAllLocalNotifications', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setLocation = function (latitude, longitude) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('setLocation', [latitude, longitude], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.startLogPageView = function (pageName) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('startLogPageView', [pageName], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.stopLogPageView = function (pageName) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('stopLogPageView', [pageName], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.beginLogPageView = function (pageName, duration) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('beginLogPageView', [pageName, duration], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setApplicationIconBadgeNumber = function (badge) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('setApplicationIconBadgeNumber', [badge], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.getApplicationIconBadgeNumber = function (callback) {
|
||||
if (this.isPlatformIOS()) {
|
||||
this.callNative('getApplicationIconBadgeNumber', [], callback)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.addDismissActions = function (actions, categoryId) {
|
||||
this.call_native('addDismissActions', [actions, categoryId])
|
||||
this.callNative('addDismissActions', [actions, categoryId])
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.addNotificationActions = function (actions, categoryId) {
|
||||
this.call_native('addNotificationActions', [actions, categoryId])
|
||||
this.callNative('addNotificationActions', [actions, categoryId])
|
||||
}
|
||||
|
||||
// Android methods
|
||||
JPushPlugin.prototype.setDebugMode = function (mode) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setDebugMode', [mode], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setBasicPushNotificationBuilder = function () {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setBasicPushNotificationBuilder', [], null)
|
||||
this.callNative('setBasicPushNotificationBuilder', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setCustomPushNotificationBuilder = function () {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setCustomPushNotificationBuilder', [], null)
|
||||
this.callNative('setCustomPushNotificationBuilder', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.receiveRegistrationIdInAndroidCallback = function (data) {
|
||||
if (device.platform === 'Android') {
|
||||
data = JSON.stringify(data)
|
||||
var event = JSON.parse(data)
|
||||
cordova.fireDocumentEvent('jpush.receiveRegistrationId', event);
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.receiveMessageInAndroidCallback = function (data) {
|
||||
data = JSON.stringify(data)
|
||||
console.log('JPushPlugin:receiveMessageInAndroidCallback: ' + data)
|
||||
@@ -226,51 +247,40 @@ JPushPlugin.prototype.receiveNotificationInAndroidCallback = function (data) {
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.clearAllNotification = function () {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('clearAllNotification', [], null)
|
||||
if (device.platform === 'Android') {
|
||||
this.callNative('clearAllNotification', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.clearNotificationById = function (notificationId) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('clearNotificationById', [notificationId], null)
|
||||
JPushPlugin.prototype.clearNotificationById = function (id) {
|
||||
if (device.platform === 'Android') {
|
||||
this.callNative('clearNotificationById', [id], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setLatestNotificationNum = function (num) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setLatestNotificationNum', [num], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setDebugMode = function (mode) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setDebugMode', [mode], null)
|
||||
this.callNative('setLatestNotificationNum', [num], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.addLocalNotification = function (builderId, content, title,
|
||||
notificationID, broadcastTime, extras) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('addLocalNotification', [builderId, content, title, notificationID, broadcastTime, extras], null)
|
||||
this.callNative('addLocalNotification',
|
||||
[builderId, content, title, notificationID, broadcastTime, extras], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.removeLocalNotification = function (notificationID) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('removeLocalNotification', [notificationID], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.clearLocalNotifications = function () {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('clearLocalNotifications', [], null)
|
||||
if (device.platform === 'Android') {
|
||||
this.callNative('removeLocalNotification', [notificationID], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.reportNotificationOpened = function (msgID) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('reportNotificationOpened', [msgID], null)
|
||||
if (device.platform === 'Android') {
|
||||
this.callNative('reportNotificationOpened', [msgID], null)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,7 +290,7 @@ JPushPlugin.prototype.reportNotificationOpened = function (msgID) {
|
||||
*/
|
||||
JPushPlugin.prototype.setStatisticsOpen = function (mode) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setStatisticsOpen', [mode], null)
|
||||
this.callNative('setStatisticsOpen', [mode], null)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,19 +300,19 @@ JPushPlugin.prototype.setStatisticsOpen = function (mode) {
|
||||
*/
|
||||
JPushPlugin.prototype.requestPermission = function () {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('requestPermission', [], null)
|
||||
this.callNative('requestPermission', [], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setSilenceTime = function (startHour, startMinute, endHour, endMinute) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setSilenceTime', [startHour, startMinute, endHour, endMinute], null)
|
||||
this.callNative('setSilenceTime', [startHour, startMinute, endHour, endMinute], null)
|
||||
}
|
||||
}
|
||||
|
||||
JPushPlugin.prototype.setPushTime = function (weekdays, startHour, endHour) {
|
||||
if (device.platform == 'Android') {
|
||||
this.call_native('setPushTime', [weekdays, startHour, endHour], null)
|
||||
this.callNative('setPushTime', [weekdays, startHour, endHour], null)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user