添加控制统计分析功能的API

添加控制统计分析的api,并修改了相关文档和示例代码,开发者可通过 js 代码直接控制是否启用统计分析功能。
This commit is contained in:
Hevin 2016-03-04 15:20:45 +08:00
parent dde913b922
commit 7d4b6acacd
4 changed files with 530 additions and 531 deletions

View File

@ -17,16 +17,16 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
1. cordova create 文件夹名字 包名 应用名字
cordova create Myproj com.myproj.jpush MyTestProj
2. 添加平台
cd Myproj
cd Myproj
cordova platform add android
cordova platform add ios
ps:这里请注意iOS平台必须先执行 `cordova platform add ios`,
然后再执行`cordova plugin add xxxxx`命令,不然有一些必须要的链接库需要手动添加
###Cordova CLI/Phonegap 安装 Android & iOS
@ -53,14 +53,14 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
3). 在js中调用函数,初始化jpush sdk
window.plugins.jPushPlugin.init();
window.plugins.jPushPlugin.init();
//由于phonegap插件采用了Lazy load的特性 所以这里建议在js文件能执行的最开始就加
### Android 手工安装
[Android 手工安装文档地址](document/Android_handle_install.md)
### IOS手工安装
@ -88,10 +88,10 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
具体的API请参考这里
#### iOS和adnroid通用API简介
#### iOS和android通用API简介
+ 停止与恢复推送服务 API
window.plugins.jPushPlugin.init()
window.plugins.jPushPlugin.stopPush()
window.plugins.jPushPlugin.resumePush()
@ -101,17 +101,17 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
+ 获取 RegistrationID API
window.plugins.jPushPlugin.getRegistrationID(callback)
+ 别名与标签 API
window.plugins.jPushPlugin.setTagsWithAlias(tags,alias)
window.plugins.jPushPlugin.setTags(tags)
window.plugins.jPushPlugin.setAlias(alias)
+ 获取点击通知内容
event - jpush.openNotification
+ 获取通知内容
event - jpush.receiveNotification
+ 获取自定义消息推送内容
@ -128,9 +128,9 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
event - jpush.receiveMessage
//推荐使用事件的方式传递但同时保留了receiveMessageIniOSCallback的回调函数兼容以前的代码
window.plugins.jPushPlugin.receiveMessageIniOSCallback(data)
+ 页面的统计
window.plugins.jPushPlugin.startLogPageView (pageName)
window.plugins.jPushPlugin.stopLogPageView (pageName)
window.plugins.jPushPlugin.beginLogPageView (pageName,duration)
@ -142,31 +142,36 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
+ 本地通知
+ 后续版本加入
+ 日志等级设置
window.plugins.jPushPlugin.setDebugModeFromIos ()
window.plugins.jPushPlugin.setLogOFF()
[iOS API详细说明](document/iOS_detail_api.md)
#### adnroid API简介
#### android API简介
+ 获取集成日志
window.plugins.jPushPlugin.setDebugMode(mode)
+ 接收推送消息和点击通知
//下面这两个api 是兼容旧有的代码
window.plugins.jPushPlugin.receiveMessageInAndroidCallback(data)
window.plugins.jPushPlugin.openNotificationInAndroidCallback(data)
+ 统计分析 API
onResume / onPause(java api)
window.plugins.jPushPlugin.setStatisticsOpen(boolean)
或在 MainActivity 中的 onPause() 和 onResume() 方法中分别调用
JPushInterface.onResume(this) 和 JPushInterface.onPause(this) 来启用统计分析功能,
如果使用这种方式启用统计分析功能则window.plugins.jPushPlugin.setStatisticsOpen(boolean)
方法不再有效,建议不要同时使用。
+ 清除通知 API
window.plugins.jPushPlugin.clearAllNotification()
@ -177,11 +182,11 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
window.plugins.jPushPlugin.setCustomPushNotificationBuilder = function()
+ 设置保留最近通知条数 API
window.plugins.jPushPlugin.setLatestNotificationNum(num)
+ 本地通知API
window.plugins.jPushPlugin.addLocalNotification(builderId,
content,
title,
@ -195,18 +200,18 @@ jpush-phonegap-plugin 支持 iOS,Android 的推送插件。
###常见问题
####1. androd
####1. android
eclipse中phonegap工程import之后出现:`Type CallbackContext cannot be resolved to a type`
解决方案eclipse中右键单击工程名Build Path->Config Build Path->Projects->选中 工程名称CordovaLib->点击 add
####2. iOS 设置/修改 APP_KEY
在PushConfig.plist 中修改。PushConfig.plist 其他值说明:
在PushConfig.plist 中修改。PushConfig.plist 其他值说明:
CHANNEL 渠道标识
IsProduction 是否生产环境(暂未启用)
###更多
[JPush官网文档](http://docs.jpush.io/)
[JPush官网文档](http://docs.jpush.io/)

View File

@ -105,6 +105,7 @@
window.plugins.jPushPlugin.setApplicationIconBadgeNumber(0);
} else {
window.plugins.jPushPlugin.setDebugMode(true);
window.plugins.jPushPlugin.setStatisticsOpen(true);
}
}
catch (exception) {
@ -220,5 +221,3 @@
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -18,28 +18,28 @@ JPushPlugin.prototype.error_callback = function(msg){
console.log("Javascript Callback Error: " + msg)
}
JPushPlugin.prototype.call_native = function(name, args, callback){
JPushPlugin.prototype.call_native = function(name, args, callback){
ret = cordova.exec(callback,this.error_callback,'JPushPlugin',name,args);
return ret;
}
//public plugin function
JPushPlugin.prototype.startLogPageView = function(pageName){
JPushPlugin.prototype.startLogPageView = function(pageName){
if(this.isPlatformIOS()){
this.call_native( "startLogPageView",[pageName],null);
}
this.call_native( "startLogPageView",[pageName],null);
}
}
JPushPlugin.prototype.stopLogPageView = function(pageName){
if(this.isPlatformIOS()){
this.call_native( "stopLogPageView",[pageName],null);
this.call_native( "stopLogPageView",[pageName],null);
}
}
JPushPlugin.prototype.beginLogPageView = function(pageName,duration){
if(this.isPlatformIOS()){
this.call_native( "beginLogPageView",[pageName,duration],null);
this.call_native( "beginLogPageView",[pageName,duration],null);
}
}
JPushPlugin.prototype.setApplicationIconBadgeNumber = function(badge){
@ -73,7 +73,7 @@ JPushPlugin.prototype.setTagsWithAlias = function(tags,alias){
}
JPushPlugin.prototype.setTags = function(tags){
try{
this.call_native("setTags",tags,null);
}
@ -83,15 +83,15 @@ JPushPlugin.prototype.setTags = function(tags){
}
JPushPlugin.prototype.setAlias = function(alias){
try{
try{
this.call_native("setAlias",[alias],null);
}
catch(exception){
catch(exception){
console.log(exception);
}
}
JPushPlugin.prototype.getRegistrationID = function(callback){
try{
var data=[];
this.call_native("getRegistrationID",[data],callback);
@ -102,8 +102,8 @@ JPushPlugin.prototype.getRegistrationID = function(callback){
}
JPushPlugin.prototype.setBadge = function(value){
if(this.isPlatformIOS()){
if(this.isPlatformIOS()){
try{
this.call_native("setBadge",[value],null);
}
@ -114,7 +114,7 @@ JPushPlugin.prototype.setBadge = function(value){
}
}
JPushPlugin.prototype.resetBadge = function(){
if(this.isPlatformIOS()){
try{
var data=[];
@ -145,7 +145,7 @@ JPushPlugin.prototype.receiveMessageIniOSCallback = function(data){
var content = bToObj.content;
console.log(content);
}
catch(exception){
catch(exception){
console.log("JPushPlugin:receiveMessageIniOSCallback"+exception);
}
}
@ -164,7 +164,7 @@ JPushPlugin.prototype.receiveMessageInAndroidCallback = function(data){
//console.log(extras['cn.jpush.android.CONTENT_TYPE']);
//console.log(extras['cn.jpush.android.EXTRA']);
}
catch(exception){
catch(exception){
console.log("JPushPlugin:pushCallback "+exception);
}
}
@ -174,9 +174,9 @@ JPushPlugin.prototype.openNotificationInAndroidCallback = function(data){
try{
console.log("JPushPlugin:openNotificationInAndroidCallback");
var bToObj = JSON.parse(data);
this.openNotification=bToObj;
this.openNotification=bToObj;
cordova.fireDocumentEvent('jpush.openNotification',null);
//console.log(data);
//var bToObj = JSON.parse(data);
//var alert = bToObj.alert;
@ -191,7 +191,7 @@ JPushPlugin.prototype.openNotificationInAndroidCallback = function(data){
//console.log(extras['cn.jpush.android.NOTIFICATION_ID']);
//console.log("JPushPlugin:openNotificationCallback is ready");
}
catch(exception){
catch(exception){
console.log(exception);
}
}
@ -199,9 +199,9 @@ JPushPlugin.prototype.receiveNotificationInAndroidCallback = function(data){
try{
console.log("JPushPlugin:receiveNotificationInAndroidCallback");
var bToObj = JSON.parse(data);
this.receiveNotification=bToObj;
this.receiveNotification=bToObj;
cordova.fireDocumentEvent('jpush.receiveNotification',null);
//console.log(data);
//var bToObj = JSON.parse(data);
//var alert = bToObj.alert;
@ -216,7 +216,7 @@ JPushPlugin.prototype.receiveNotificationInAndroidCallback = function(data){
//console.log(extras['cn.jpush.android.NOTIFICATION_ID']);
//console.log("JPushPlugin:openNotificationCallback is ready");
}
catch(exception){
catch(exception){
console.log(exception);
}
}
@ -244,7 +244,7 @@ JPushPlugin.prototype.stopPush = function(){
JPushPlugin.prototype.resumePush = function(){
data=[]
this.call_native("resumePush",data,null);
}
JPushPlugin.prototype.setDebugMode = function(mode){
if(device.platform == "Android") {
@ -276,7 +276,7 @@ JPushPlugin.prototype.isPushStopped = function(callback){
data=[];
this.call_native("isPushStopped",data,callback)
}
JPushPlugin.prototype.init = function(){
@ -288,7 +288,7 @@ JPushPlugin.prototype.init = function(){
this.call_native("init",data,null);
}
}
JPushPlugin.prototype.setDebugMode = function(mode){
@ -316,11 +316,21 @@ JPushPlugin.prototype.clearLocalNotifications = function(){
JPushPlugin.prototype.reportNotificationOpened = function(msgID){
if(device.platform == "Android") {
this.call_native("reportNotificationOpened",[msgID],null);
}
}
/**
*是否开启统计分析功能用于用户使用时长活跃用户用户打开次数的统计并上报到服务器上
* Portal 上展示给开发者
**/
JPushPlugin.prototype.setStatisticsOpen = function(mode) {
if(device.platform == "Android") {
this.call_native("setStatisticsOpen", [mode], null);
}
}
//iOS single
@ -330,9 +340,6 @@ if(!window.plugins){
if(!window.plugins.jPushPlugin){
window.plugins.jPushPlugin = new JPushPlugin();
}
module.exports = new JPushPlugin();
}
module.exports = new JPushPlugin();