mirror of
https://github.com/jpush/jpush-phonegap-plugin.git
synced 2026-02-08 00:05:13 +08:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e7e957884 | ||
|
|
c615f8255e | ||
|
|
7ffec241fa | ||
|
|
de32f4a057 | ||
|
|
1cd7ecf3e5 | ||
|
|
b01b4bf259 | ||
|
|
f8efb4f010 | ||
|
|
870fc12c0d | ||
|
|
dc2cdda00c | ||
|
|
1c96487869 |
35
README.md
35
README.md
@@ -1,8 +1,8 @@
|
||||
# JPush PhoneGap / Cordova 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)
|
||||
[](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)。
|
||||
|
||||
## 集成步骤
|
||||
集成 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
|
||||
安装 JPush PhoneGap Plugin 有两种方法:
|
||||
- 直接通过 url 安装:
|
||||
|
||||
方法一:在线安装
|
||||
|
||||
通过 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
|
||||
|
||||
方法二:下载到本地再安装
|
||||
cordova plugin add https://github.com/jpush/jpush-phonegap-plugin.git --variable API_KEY=your_jpush_appkey
|
||||
|
||||
### 本地安装
|
||||
使用 git 命令将 JPush PhoneGap 插件下载的本地,目录标记为 $JPUSH_PLUGIN_DIR:
|
||||
|
||||
git clone https://github.com/jpush/jpush-phonegap-plugin.git
|
||||
@@ -40,12 +32,6 @@
|
||||
|
||||
- [iOS 手动安装文档地址](/doc/iOS_install.md)。
|
||||
|
||||
### 3.在 js 中调用函数,初始化 JPush
|
||||
|
||||
//由于 PhoneGap 插件采用了 lazy load 的特性,所以建议在 js 文件能执行的最开始就添加。
|
||||
window.plugins.jPushPlugin.init();
|
||||
|
||||
|
||||
## Demo
|
||||
插件项目中包含一个简单的 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)。
|
||||
|
||||
### 1. Android
|
||||
|
||||
@@ -57,7 +57,7 @@ JPush SDK 会恢复正常的默认行为。(因为保存在本地的状态数
|
||||
|
||||
### API - isPushStopped
|
||||
|
||||
iOS平台,检查推送服务是否注册。
|
||||
iOS平台,检查推送服务是否停止。
|
||||
|
||||
#### 接口定义
|
||||
|
||||
@@ -69,12 +69,12 @@ iOS平台,检查推送服务是否注册。
|
||||
- callback 回调函数,用来通知 JPush 的推送服务是否开启。
|
||||
|
||||
#### 代码示例
|
||||
window.plugins.jPushPlugin.resumePush(callback)
|
||||
var onCallback = function(data) {
|
||||
window.plugins.jPushPlugin.isPushStopped(callback)
|
||||
var callback = function(data) {
|
||||
if(data > 0) {
|
||||
// 开启
|
||||
// 已关闭
|
||||
} else {
|
||||
// 关闭
|
||||
// 已开启
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "jpush-phonegap-plugin",
|
||||
"version": "2.2.0",
|
||||
"version": "2.2.1",
|
||||
"description": "JPush for cordova plugin",
|
||||
"cordova": {
|
||||
"id": "cn.jpush.phonegap.JPushPlugin",
|
||||
|
||||
25
plugin.xml
25
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="cn.jpush.phonegap.JPushPlugin"
|
||||
version="2.2.0">
|
||||
version="2.2.1">
|
||||
|
||||
<name>JPush Plugin</name>
|
||||
<description>JPush for cordova plugin</description>
|
||||
@@ -16,6 +16,8 @@
|
||||
<engine name="cordova" version=">=3.0"/>
|
||||
</engines>
|
||||
|
||||
<dependency id="org.apache.cordova.device" url="https://github.com/apache/cordova-plugin-device.git" />
|
||||
|
||||
<js-module src="www/JPushPlugin.js" name="JPushPlugin">
|
||||
<clobbers target="jPushPlugin"/>
|
||||
</js-module>
|
||||
@@ -53,11 +55,6 @@
|
||||
|
||||
<!-- 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="/*">
|
||||
<feature name="JPushPlugin">
|
||||
<param name="android-package" value="cn.jpush.phonegap.JPushPlugin"/>
|
||||
@@ -139,7 +136,6 @@
|
||||
<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>
|
||||
|
||||
@@ -169,20 +165,21 @@
|
||||
</receiver>
|
||||
<!-- Required SDK核心功能-->
|
||||
<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_APPKEY" android:value="$API_KEY"/>
|
||||
</config-file>
|
||||
|
||||
<source-file src="src/android/jpush-android-2.1.5.jar" target-dir="libs"/>
|
||||
<source-file src="src/android/armeabi/libjpush215.so" target-dir="libs/armeabi"/>
|
||||
<source-file src="src/android/armeabi-v7a/libjpush215.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/x86/libjpush215.so" target-dir="libs/x86"/>
|
||||
<source-file src="src/android/x86_64/libjpush215.so" target-dir="libs/x86_64"/>
|
||||
<source-file src="src/android/jpush-android-2.1.7.jar" target-dir="libs"/>
|
||||
<source-file src="src/android/armeabi/libjpush217.so" target-dir="libs/armeabi"/>
|
||||
<source-file src="src/android/armeabi-v7a/libjpush217.so" target-dir="libs/armeabi-v7a"/>
|
||||
<source-file src="src/android/arm64-v8a/libjpush217.so" target-dir="libs/arm64-v8a"/>
|
||||
<source-file src="src/android/x86/libjpush217.so" target-dir="libs/x86"/>
|
||||
<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/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/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.util.Log;
|
||||
|
||||
import __PACKAGE_NAME__.R;
|
||||
|
||||
import org.apache.cordova.CallbackContext;
|
||||
import org.apache.cordova.CordovaInterface;
|
||||
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,
|
||||
CallbackContext callbackContext) {
|
||||
CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(
|
||||
this.cordova.getActivity(), R.layout.test_notification_layout,
|
||||
R.id.icon, R.id.title, R.id.text);
|
||||
builder.developerArg0 = "Custom Builder 1";
|
||||
JPushInterface.setPushNotificationBuilder(2, builder);
|
||||
JSONObject obj = new JSONObject();
|
||||
try {
|
||||
obj.put("id", 2);
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(
|
||||
// this.cordova.getActivity(), R.layout.test_notification_layout,
|
||||
// R.id.icon, R.id.title, R.id.text);
|
||||
// builder.developerArg0 = "Custom Builder 1";
|
||||
// JPushInterface.setPushNotificationBuilder(2, builder);
|
||||
// JSONObject obj = new JSONObject();
|
||||
// try {
|
||||
// obj.put("id", 2);
|
||||
// } catch (JSONException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
}
|
||||
|
||||
void clearAllNotification(JSONArray data, CallbackContext callbackContext) {
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/android/jpush-android-2.1.7.jar
Normal file
BIN
src/android/jpush-android-2.1.7.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user