mirror of
https://github.com/jpush/jpush-phonegap-plugin.git
synced 2026-04-19 00:03:45 +08:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e7e957884 | |||
| c615f8255e | |||
| 7ffec241fa | |||
| de32f4a057 | |||
| 1cd7ecf3e5 | |||
| b01b4bf259 | |||
| f8efb4f010 | |||
| 870fc12c0d | |||
| dc2cdda00c | |||
| 1c96487869 |
@@ -1,8 +1,8 @@
|
|||||||
# JPush PhoneGap / Cordova Plugin
|
# JPush PhoneGap / Cordova Plugin
|
||||||
|
|
||||||
[](https://travis-ci.org/jpush/jpush-phonegap-plugin)
|
[](https://travis-ci.org/jpush/jpush-phonegap-plugin)
|
||||||
[](https://gitter.im/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)
|
[](https://github.com/jpush/jpush-phonegap-plugin)
|
||||||
[](http://weibo.com/jpush?refer_flag=1001030101_&is_all=1)
|
[](http://weibo.com/jpush?refer_flag=1001030101_&is_all=1)
|
||||||
|
|
||||||
@@ -10,26 +10,18 @@
|
|||||||
> 如需要 IM 功能的插件,可关注 [jmessage-phonegap-plugin](https://github.com/jpush/jmessage-phonegap-plugin)。
|
> 如需要 IM 功能的插件,可关注 [jmessage-phonegap-plugin](https://github.com/jpush/jmessage-phonegap-plugin)。
|
||||||
|
|
||||||
## 集成步骤
|
## 集成步骤
|
||||||
|
集成 JPush PhoneGap Plugin 有两种方法:
|
||||||
|
|
||||||
### 1.首先安装 cordova device 插件
|
### 在线安装
|
||||||
|
- 通过 Cordova Plugins 安装,要求 PhoneGap/Cordova CLI 5.0+:
|
||||||
|
|
||||||
cordova plugin add cordova-plugin-device
|
cordova plugin add jpush-phonegap-plugin --variable API_KEY=your_jpush_appkey
|
||||||
|
|
||||||
### 2.安装 JPush PhoneGap Plugin
|
- 直接通过 url 安装:
|
||||||
安装 JPush PhoneGap Plugin 有两种方法:
|
|
||||||
|
|
||||||
方法一:在线安装
|
cordova plugin add https://github.com/jpush/jpush-phonegap-plugin.git --variable API_KEY=your_jpush_appkey
|
||||||
|
|
||||||
通过 Cordova plugins 安装,要求 PhoneGap/Cordova CLI 5.0+:
|
|
||||||
|
|
||||||
cordova plugin add jpush-phonegap-plugin --variable API_KEY=your_jpush_appkey
|
|
||||||
|
|
||||||
直接通过 url 安装:
|
|
||||||
|
|
||||||
cordova plugin add https://github.com/jpush/jpush-phonegap-plugin.git --variable API_KEY=your_jpush_appkey
|
|
||||||
|
|
||||||
方法二:下载到本地再安装
|
|
||||||
|
|
||||||
|
### 本地安装
|
||||||
使用 git 命令将 JPush PhoneGap 插件下载的本地,目录标记为 $JPUSH_PLUGIN_DIR:
|
使用 git 命令将 JPush PhoneGap 插件下载的本地,目录标记为 $JPUSH_PLUGIN_DIR:
|
||||||
|
|
||||||
git clone https://github.com/jpush/jpush-phonegap-plugin.git
|
git clone https://github.com/jpush/jpush-phonegap-plugin.git
|
||||||
@@ -40,12 +32,6 @@
|
|||||||
|
|
||||||
- [iOS 手动安装文档地址](/doc/iOS_install.md)。
|
- [iOS 手动安装文档地址](/doc/iOS_install.md)。
|
||||||
|
|
||||||
### 3.在 js 中调用函数,初始化 JPush
|
|
||||||
|
|
||||||
//由于 PhoneGap 插件采用了 lazy load 的特性,所以建议在 js 文件能执行的最开始就添加。
|
|
||||||
window.plugins.jPushPlugin.init();
|
|
||||||
|
|
||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
插件项目中包含一个简单的 Demo。若想参考,可以在 /example 文件夹内找到并拷贝以下文件:
|
插件项目中包含一个简单的 Demo。若想参考,可以在 /example 文件夹内找到并拷贝以下文件:
|
||||||
|
|
||||||
@@ -77,7 +63,8 @@
|
|||||||
|
|
||||||
## 常见问题
|
## 常见问题
|
||||||
|
|
||||||
若要使用 CLI 来编译项目,注意应使用 cordova compile 而不是 cordova build 命令,因为 cordova build 会清除对插件文件的修改。
|
若要使用 CLI 来编译项目,注意应使用 cordova compile 而不是 cordova build 命令,因为如果修改了插件安装时默认写入到 AndroidManifest.xml
|
||||||
|
中的代码,cordova build 可能会导致对 AndroidManifest.xml 的修改。
|
||||||
Cordova CLI 的具体用法可参考 [Cordova CLI 官方文档](https://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html)。
|
Cordova CLI 的具体用法可参考 [Cordova CLI 官方文档](https://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html)。
|
||||||
|
|
||||||
### 1. Android
|
### 1. Android
|
||||||
|
|||||||
+5
-5
@@ -57,7 +57,7 @@ JPush SDK 会恢复正常的默认行为。(因为保存在本地的状态数
|
|||||||
|
|
||||||
### API - isPushStopped
|
### API - isPushStopped
|
||||||
|
|
||||||
iOS平台,检查推送服务是否注册。
|
iOS平台,检查推送服务是否停止。
|
||||||
|
|
||||||
#### 接口定义
|
#### 接口定义
|
||||||
|
|
||||||
@@ -69,12 +69,12 @@ iOS平台,检查推送服务是否注册。
|
|||||||
- callback 回调函数,用来通知 JPush 的推送服务是否开启。
|
- callback 回调函数,用来通知 JPush 的推送服务是否开启。
|
||||||
|
|
||||||
#### 代码示例
|
#### 代码示例
|
||||||
window.plugins.jPushPlugin.resumePush(callback)
|
window.plugins.jPushPlugin.isPushStopped(callback)
|
||||||
var onCallback = function(data) {
|
var callback = function(data) {
|
||||||
if(data > 0) {
|
if(data > 0) {
|
||||||
// 开启
|
// 已关闭
|
||||||
} else {
|
} else {
|
||||||
// 关闭
|
// 已开启
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "jpush-phonegap-plugin",
|
"name": "jpush-phonegap-plugin",
|
||||||
"version": "2.2.0",
|
"version": "2.2.1",
|
||||||
"description": "JPush for cordova plugin",
|
"description": "JPush for cordova plugin",
|
||||||
"cordova": {
|
"cordova": {
|
||||||
"id": "cn.jpush.phonegap.JPushPlugin",
|
"id": "cn.jpush.phonegap.JPushPlugin",
|
||||||
|
|||||||
+11
-14
@@ -2,7 +2,7 @@
|
|||||||
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
id="cn.jpush.phonegap.JPushPlugin"
|
id="cn.jpush.phonegap.JPushPlugin"
|
||||||
version="2.2.0">
|
version="2.2.1">
|
||||||
|
|
||||||
<name>JPush Plugin</name>
|
<name>JPush Plugin</name>
|
||||||
<description>JPush for cordova plugin</description>
|
<description>JPush for cordova plugin</description>
|
||||||
@@ -16,6 +16,8 @@
|
|||||||
<engine name="cordova" version=">=3.0"/>
|
<engine name="cordova" version=">=3.0"/>
|
||||||
</engines>
|
</engines>
|
||||||
|
|
||||||
|
<dependency id="org.apache.cordova.device" url="https://github.com/apache/cordova-plugin-device.git" />
|
||||||
|
|
||||||
<js-module src="www/JPushPlugin.js" name="JPushPlugin">
|
<js-module src="www/JPushPlugin.js" name="JPushPlugin">
|
||||||
<clobbers target="jPushPlugin"/>
|
<clobbers target="jPushPlugin"/>
|
||||||
</js-module>
|
</js-module>
|
||||||
@@ -53,11 +55,6 @@
|
|||||||
|
|
||||||
<!-- android -->
|
<!-- android -->
|
||||||
<platform name="android">
|
<platform name="android">
|
||||||
<hook type="after_plugin_add" src="scripts/android-install.js" />
|
|
||||||
<hook type="after_plugin_install" src="scripts/android-install.js" />
|
|
||||||
<hook type="before_plugin_rm" src="scripts/android-install.js" />
|
|
||||||
<hook type="before_plugin_uninstall" src="scripts/android-install.js" />
|
|
||||||
|
|
||||||
<config-file target="res/xml/config.xml" parent="/*">
|
<config-file target="res/xml/config.xml" parent="/*">
|
||||||
<feature name="JPushPlugin">
|
<feature name="JPushPlugin">
|
||||||
<param name="android-package" value="cn.jpush.phonegap.JPushPlugin"/>
|
<param name="android-package" value="cn.jpush.phonegap.JPushPlugin"/>
|
||||||
@@ -139,7 +136,6 @@
|
|||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.PACKAGE_ADDED"/>
|
<action android:name="android.intent.action.PACKAGE_ADDED"/>
|
||||||
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
|
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
|
||||||
<data android:scheme="package"/>
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
@@ -169,20 +165,21 @@
|
|||||||
</receiver>
|
</receiver>
|
||||||
<!-- Required SDK核心功能-->
|
<!-- Required SDK核心功能-->
|
||||||
<receiver android:name="cn.jpush.android.service.AlarmReceiver"/>
|
<receiver android:name="cn.jpush.android.service.AlarmReceiver"/>
|
||||||
<!-- Required . Enable it you can get statistics data with channel -->
|
<!-- 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="developer-default"/>
|
||||||
<meta-data android:name="JPUSH_APPKEY" android:value="$API_KEY"/>
|
<meta-data android:name="JPUSH_APPKEY" android:value="$API_KEY"/>
|
||||||
</config-file>
|
</config-file>
|
||||||
|
|
||||||
<source-file src="src/android/jpush-android-2.1.5.jar" target-dir="libs"/>
|
<source-file src="src/android/jpush-android-2.1.7.jar" target-dir="libs"/>
|
||||||
<source-file src="src/android/armeabi/libjpush215.so" target-dir="libs/armeabi"/>
|
<source-file src="src/android/armeabi/libjpush217.so" target-dir="libs/armeabi"/>
|
||||||
<source-file src="src/android/armeabi-v7a/libjpush215.so" target-dir="libs/armeabi-v7a"/>
|
<source-file src="src/android/armeabi-v7a/libjpush217.so" target-dir="libs/armeabi-v7a"/>
|
||||||
<source-file src="src/android/arm64-v8a/libjpush215.so" target-dir="libs/arm64-v8a"/>
|
<source-file src="src/android/arm64-v8a/libjpush217.so" target-dir="libs/arm64-v8a"/>
|
||||||
<source-file src="src/android/x86/libjpush215.so" target-dir="libs/x86"/>
|
<source-file src="src/android/x86/libjpush217.so" target-dir="libs/x86"/>
|
||||||
<source-file src="src/android/x86_64/libjpush215.so" target-dir="libs/x86_64"/>
|
<source-file src="src/android/x86_64/libjpush217.so" target-dir="libs/x86_64"/>
|
||||||
|
|
||||||
<!--<source-file src="src/android/JPushPlugin.java" target-dir="src/cn/jpush/phonegap"/>-->
|
<!--<source-file src="src/android/JPushPlugin.java" target-dir="src/cn/jpush/phonegap"/>-->
|
||||||
<source-file src="src/android/MyReceiver.java" target-dir="src/cn/jpush/phonegap"/>
|
<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"/>
|
||||||
<source-file src="src/android/test_notification_layout.xml" target-dir="res/layout"/>
|
<source-file src="src/android/test_notification_layout.xml" target-dir="res/layout"/>
|
||||||
<source-file src="src/android/jpush_notification_icon.png" target-dir="res/drawable"/>
|
<source-file src="src/android/jpush_notification_icon.png" target-dir="res/drawable"/>
|
||||||
|
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
#!/usr/bin/env node
|
|
||||||
|
|
||||||
module.exports = function (context) {
|
|
||||||
var path = context.requireCordovaModule('path'),
|
|
||||||
fs = context.requireCordovaModule('fs'),
|
|
||||||
shell = context.requireCordovaModule('shelljs'),
|
|
||||||
projectRoot = context.opts.projectRoot,
|
|
||||||
ConfigParser = context.requireCordovaModule('cordova-common/src/configparser/ConfigParser'),
|
|
||||||
config = new ConfigParser(path.join(context.opts.projectRoot, "config.xml")),
|
|
||||||
packageName = config.android_packageName() || config.packageName();
|
|
||||||
|
|
||||||
console.info("Running android-install.Hook: " + context.hook
|
|
||||||
+ ", Package: " + packageName + ", Path: " + projectRoot + ".");
|
|
||||||
|
|
||||||
if (!packageName) {
|
|
||||||
console.error("Package name could not be found!");
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
// android platform available?
|
|
||||||
if (context.opts.cordova.platforms.indexOf("android") === -1) {
|
|
||||||
console.info("Android platform has not been added.");
|
|
||||||
return ;
|
|
||||||
}
|
|
||||||
|
|
||||||
var targetDir = path.join(projectRoot, "platforms", "android", "src", "cn", "jpush", "phonegap");
|
|
||||||
targetFile = path.join(targetDir, "JPushPlugin.java");
|
|
||||||
console.log(targetDir);
|
|
||||||
|
|
||||||
if (['after_plugin_add', 'after_plugin_install', 'after_platform_add'].indexOf(context.hook) === -1) {
|
|
||||||
// remove it?
|
|
||||||
try {
|
|
||||||
fs.unlinkSync(targetFile);
|
|
||||||
} catch (err) {}
|
|
||||||
} else {
|
|
||||||
// create directory
|
|
||||||
shell.mkdir('-p', targetDir);
|
|
||||||
|
|
||||||
// sync the content
|
|
||||||
fs.readFile(path.join(context.opts.plugin.dir, 'src', 'android', 'JPushPlugin.java'),
|
|
||||||
{encoding: 'utf-8'}, function (err, data) {
|
|
||||||
if (err) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
data = data.replace(/^import __PACKAGE_NAME__.R;/m, 'import ' + packageName + '.R;');
|
|
||||||
fs.writeFileSync(targetFile, data);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -5,8 +5,6 @@ import android.content.Context;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import __PACKAGE_NAME__.R;
|
|
||||||
|
|
||||||
import org.apache.cordova.CallbackContext;
|
import org.apache.cordova.CallbackContext;
|
||||||
import org.apache.cordova.CordovaInterface;
|
import org.apache.cordova.CordovaInterface;
|
||||||
import org.apache.cordova.CordovaPlugin;
|
import org.apache.cordova.CordovaPlugin;
|
||||||
@@ -438,19 +436,23 @@ public class JPushPlugin extends CordovaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义推送通知栏样式,需要自己实现具体代码。
|
||||||
|
* http://docs.jiguang.cn/client/android_tutorials/#_11
|
||||||
|
*/
|
||||||
void setCustomPushNotificationBuilder(JSONArray data,
|
void setCustomPushNotificationBuilder(JSONArray data,
|
||||||
CallbackContext callbackContext) {
|
CallbackContext callbackContext) {
|
||||||
CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(
|
// CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(
|
||||||
this.cordova.getActivity(), R.layout.test_notification_layout,
|
// this.cordova.getActivity(), R.layout.test_notification_layout,
|
||||||
R.id.icon, R.id.title, R.id.text);
|
// R.id.icon, R.id.title, R.id.text);
|
||||||
builder.developerArg0 = "Custom Builder 1";
|
// builder.developerArg0 = "Custom Builder 1";
|
||||||
JPushInterface.setPushNotificationBuilder(2, builder);
|
// JPushInterface.setPushNotificationBuilder(2, builder);
|
||||||
JSONObject obj = new JSONObject();
|
// JSONObject obj = new JSONObject();
|
||||||
try {
|
// try {
|
||||||
obj.put("id", 2);
|
// obj.put("id", 2);
|
||||||
} catch (JSONException e) {
|
// } catch (JSONException e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearAllNotification(JSONArray data, CallbackContext callbackContext) {
|
void clearAllNotification(JSONArray data, CallbackContext callbackContext) {
|
||||||
|
|||||||
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.
Reference in New Issue
Block a user