Cordova插件之友盟统计
来源:互联网 发布:郴州市2016年财政数据 编辑:程序博客网 时间:2024/05/17 22:29
本插件包括友盟的基本统计功能,也就是只需在 didFinishLaunchingWithOptions中写的东西还包括深度统计,统计每个页面的情况
本项目时ionic的项目
在插件中监听每个页面的跳转太为难了,但是在app.js 中就能更具angular 的路由机制来调用插件中的不同方法,来实现页面的统计
具体代码(app.js中的):
if(window.cordova && window.cordova.plugins && window.cordova.plugins.umeng){
//初始化友盟插件
var umengInitResult = window.cordova.plugins.umeng.init();
//设置友盟统计Debug模式,上线时候需要改为false
var umengDebugModeResult = window.cordova.plugins.umeng.setDebugMode(true);
//添加Resume监听事件
$ionicPlatform.on(‘resume’, function(data){
window.cordova.plugins.umeng.onResume();
}); //添加Pause监听事件 $ionicPlatform.on('pause', function (data) { window.cordova.plugins.umeng.onPause(); }); $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){ var fromUrl = fromState.url; if(fromUrl.indexOf("/:") > 0){ fromUrl = fromUrl.substring(0, fromUrl.indexOf("/:")); } var toUrl = toState.url; if(toUrl.indexOf("/:") > 0){ toUrl = toUrl.substring(0, toUrl.indexOf("/:")); } console.log("from url: " + fromUrl + " to url: " + toUrl); var pageEndResult = window.cordova.plugins.umeng.onPageEnd(fromUrl); var pageStartResult = window.cordova.plugins.umeng.onPageStart(toUrl); }); }
通过$stateChangeSuccess 来判断是从那个页面到哪个页面
当用户退出app的时候 window.cordova.plugins.umeng.onKillProcess();
具体的插件中的代码是 .h
static BOOL isInit = false;
@interface UmengAnalyticsPlugin : CDVPlugin {
// Member variables go here.
}
- (void)init:(CDVInvokedUrlCommand*)command;
- (void)setDebugMode:(CDVInvokedUrlCommand*)command;
- (void)onPause:(CDVInvokedUrlCommand*)command;
- (void)onResume:(CDVInvokedUrlCommand*)command;
- (void)pageStart:(CDVInvokedUrlCommand*)command;
- (void)pageEnd:(CDVInvokedUrlCommand*)command;
- (void)pageEvent:(CDVInvokedUrlCommand*)command;
@end
.m中代码
@implementation UmengAnalyticsPlugin
(void)initMobClick{
if(!isInit){
NSLog(@”初始化友盟统计插件”);
isInit = true;
CDVViewController* viewController = (CDVViewController*)self.viewController;
//读取配置文件中的 友盟 appId key=umengiosappid
NSString* umengAppId = [viewController.settings objectForKey:@”umengiosappid”];
NSLog(@”友盟AppId:%@”, umengAppId);
//读取配置文件中的 友盟 channelId key=umengioschannel
NSString* umengChannel = [viewController.settings objectForKey:@”umengioschannel”];
[MobClick startWithAppkey:umengAppId reportPolicy:BATCH channelId:umengChannel];
}
}(void)init:(CDVInvokedUrlCommand*)command
{
[self initMobClick];
}(void)setDebugMode:(CDVInvokedUrlCommand*)command
{
NSString* debug = [command.arguments objectAtIndex:0];
NSLog(@”友盟调试模式:%@”, debug);
if([@”1” isEqual: debug])
{
[MobClick setLogEnabled:YES];
}else{
[MobClick setLogEnabled:NO];
}
}(void)onPause:(CDVInvokedUrlCommand*)command;
{
NSLog(@”App Pause!”);
}(void)onResume:(CDVInvokedUrlCommand*)command;
{
NSLog(@”App Resume!”);
}(void)pageStart:(CDVInvokedUrlCommand*)command
{
[self initMobClick];
NSString* pageName = [command.arguments objectAtIndex:0];
NSLog(@”%@ - 页面开始”, pageName);
[MobClick beginLogPageView:pageName];
}(void)pageEnd:(CDVInvokedUrlCommand*)command
{
[self initMobClick];
NSString* pageName = [command.arguments objectAtIndex:0];
NSLog(@”%@ - 页面结束”, pageName);
[MobClick endLogPageView:pageName];
}
-(void)pageEvent:(CDVInvokedUrlCommand*)command
{
[self initMobClick];
NSString* eventId = [command.arguments objectAtIndex:0];
[MobClick event:eventId];
}
@end
插件里面的东西没啥所说的,关键是要知道从app.js中根据路由状态的改变来调用插件中的方法,从而实现页面的统计,如果你只是需要统计一个Umeng启动的时候的方法
[MobClick startWithAppkey:umengAppId reportPolicy:BATCH channelId:umengChannel];
那么你完全没有必要搞的这么复杂,写一个运行时候appdelegate的类目就OK了,可以仿照我在百度地图的插件中写的一个类目来,完全一模一样。
- Cordova插件之友盟统计
- cordova之自定义插件
- cordova插件之org.apache.cordova.inappbrowser
- Android Cordova 插件开发之Cordova安装
- Android Cordova 插件开发之Cordova安装
- Android Cordova 插件开发之Cordova安装
- ionic之cordova插件自定义
- Cordova之Android插件开发
- Cordova插件之支付整理
- cordova的友盟插件(自己打包的)
- Android Cordova 插件开发之创建项目
- Cordova插件之原生MD5加密
- Android Cordova 插件开发之创建项目
- plugman简单使用之cordova插件创建
- cordova 插件之资源文件处理
- ionic2 cordova插件用法之二
- Android Cordova 插件开发之创建项目
- cordova 自定义插件之完整流程
- android静态代码分析工具Android lint
- ERP系统上线的幸福曲线
- lvs模型及调度
- Java基础---继承、抽象、接口
- 使用android-resource-remover遇到的问题
- Cordova插件之友盟统计
- 处理机调度
- Mongo基本操作和命令
- 正则表达式基本语法
- html弹出提示showtoast
- [leetcode]Remove Duplicates from Sorted List
- java.lang.IllegalArgumentException: localizableString cannot be null
- MapReduce并行创建反向索引
- LOCOCO角点检测方法(一种快速精确的Harris及KLT)介绍