New file |
| | |
| | | // |
| | | // MobClick.h |
| | | // Analytics |
| | | // |
| | | // Copyright (C) 2010-2017 Umeng.com . All rights reserved. |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface MobClick : NSObject |
| | | |
| | | #pragma mark basics |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 设置 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | |
| | | |
| | | #pragma mark event logs |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 页面计时 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 手动页面时长统计, 记录某个页面展示的时长. |
| | | @param pageName 统计的页面名称. |
| | | @param seconds 单位为秒,int型. |
| | | @return void. |
| | | */ |
| | | + (void)logPageView:(NSString *)pageName seconds:(int)seconds; |
| | | |
| | | /** 自动页面时长统计, 开始记录某个页面展示时长. |
| | | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 |
| | | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: |
| | | @param pageName 统计的页面名称. |
| | | @return void. |
| | | */ |
| | | + (void)beginLogPageView:(NSString *)pageName; |
| | | |
| | | /** 自动页面时长统计, 结束记录某个页面展示时长. |
| | | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 |
| | | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: |
| | | @param pageName 统计的页面名称. |
| | | @return void. |
| | | */ |
| | | + (void)endLogPageView:(NSString *)pageName; |
| | | |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 事件统计 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | |
| | | @param eventId 网站上注册的事件Id. |
| | | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. |
| | | @param accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。 |
| | | @return void. |
| | | */ |
| | | + (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId; |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | */ |
| | | + (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId; |
| | | |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | */ |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes; |
| | | |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number; |
| | | |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来 |
| | | |
| | | @param eventId 网站上注册的事件Id. |
| | | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. |
| | | @param primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey |
| | | @param millisecond 自己计时需要的话需要传毫秒进来 |
| | | @return void. |
| | | |
| | | @warning 每个event的attributes不能超过100个 |
| | | eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符) |
| | | id, ts, du是保留字段,不能作为eventId及key的名称 |
| | | */ |
| | | + (void)beginEvent:(NSString *)eventId; |
| | | |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)beginEvent:(NSString *)eventId label:(NSString *)label; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId label:(NSString *)label; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)event:(NSString *)eventId durations:(int)millisecond; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond; |
| | | |
| | | |
| | | #pragma mark - user methods |
| | | /** active user sign-in. |
| | | 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数 |
| | | @param puid : user's ID |
| | | @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。 |
| | | @return void. |
| | | */ |
| | | + (void)profileSignInWithPUID:(NSString *)puid; |
| | | + (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider; |
| | | |
| | | /** active user sign-off. |
| | | 停止sign-in PUID的统计 |
| | | @return void. |
| | | */ |
| | | + (void)profileSignOff; |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 地理位置设置 |
| | | /// 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h> |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 设置经纬度信息 |
| | | @param latitude 纬度. |
| | | @param longitude 经度. |
| | | @return void |
| | | */ |
| | | + (void)setLatitude:(double)latitude longitude:(double)longitude; |
| | | |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name Utility函数 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 判断设备是否越狱,依据是否存在apt和Cydia.app |
| | | */ |
| | | + (BOOL)isJailbroken; |
| | | |
| | | /** 判断App是否被破解 |
| | | */ |
| | | + (BOOL)isPirated; |
| | | |
| | | /** 设置 app secret |
| | | @param secret string |
| | | @return void. |
| | | */ |
| | | + (void)setSecret:(NSString *)secret; |
| | | |
| | | |
| | | /** |
| | | * 设置预置事件属性 键值对 会覆盖同名的key |
| | | */ |
| | | +(void) registerPreProperties:(NSDictionary *)property; |
| | | |
| | | /** |
| | | * |
| | | * 删除指定预置事件属性 |
| | | @param key |
| | | */ |
| | | +(void) unregisterPreProperty:(NSString *)propertyName; |
| | | |
| | | /** |
| | | * 获取预置事件所有属性;如果不存在,则返回空。 |
| | | */ |
| | | +(NSDictionary *)getPreProperties; |
| | | |
| | | /** |
| | | *清空所有预置事件属性。 |
| | | */ |
| | | +(void)clearPreProperties; |
| | | |
| | | |
| | | /** |
| | | * 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效 |
| | | */ |
| | | +(void)setFirstLaunchEvent:(NSArray *)eventList; |
| | | |
| | | /** 设置是否自动采集页面, 默认NO(不自动采集). |
| | | @param value 设置为YES, umeng SDK 会将自动采集页面信息 |
| | | */ |
| | | + (void)setAutoPageEnabled:(BOOL)value; |
| | | |
| | | /** |
| | | *集成测试。 |
| | | */ |
| | | + (BOOL)handleUrl:(NSURL *)url; |
| | | |
| | | |
| | | @end |
| | | |
| | | |
New file |
| | |
| | | |
| | | // |
| | | // UMCommon.h |
| | | // UMCommon |
| | | // |
| | | // Created by San Zhang on 11/2/16. |
| | | // Copyright © 2016 UMeng. All rights reserved. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | //! Project version number for UMCommon. |
| | | FOUNDATION_EXPORT double UMCommonVersionNumber; |
| | | |
| | | //! Project version string for UMCommon. |
| | | FOUNDATION_EXPORT const unsigned char UMCommonVersionString[]; |
| | | |
| | | // In this header, you should import all the public headers of your framework using statements like #import <UMCommon/PublicHeader.h> |
| | | |
| | | #import <UMCommon/UMConfigure.h> |
New file |
| | |
| | | // |
| | | // UMConfigure.h |
| | | // UMCommon |
| | | // |
| | | // Created by San Zhang on 9/6/16. |
| | | // Copyright © 2016 UMeng. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface UMConfigure : NSObject |
| | | |
| | | /** 初始化友盟所有组件产品 |
| | | @param appKey 开发者在友盟官网申请的appkey. |
| | | @param channel 渠道标识,可设置nil表示"App Store". |
| | | */ |
| | | + (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel; |
| | | |
| | | /** 设置是否在console输出sdk的log信息. |
| | | @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO. |
| | | */ |
| | | + (void)setLogEnabled:(BOOL)bFlag; |
| | | |
| | | /** 设置是否对日志信息进行加密, 默认NO(不加密). |
| | | @param value 设置为YES, umeng SDK 会将日志信息做加密处理 |
| | | */ |
| | | + (void)setEncryptEnabled:(BOOL)value; |
| | | |
| | | + (NSString *)umidString; |
| | | |
| | | /** |
| | | 集成测试需要device_id |
| | | */ |
| | | + (NSString*)deviceIDForIntegration; |
| | | |
| | | /** 是否开启统计,默认为YES(开启状态) |
| | | @param value 设置为NO,可关闭友盟统计功能. |
| | | @return void. |
| | | */ |
| | | + (void)setAnalyticsEnabled:(BOOL)value; |
| | | |
| | | //获取zid |
| | | + (NSString *)getUmengZID; |
| | | |
| | | @end |
New file |
| | |
| | | // |
| | | // MobClick.h |
| | | // Analytics |
| | | // |
| | | // Copyright (C) 2010-2017 Umeng.com . All rights reserved. |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface MobClick : NSObject |
| | | |
| | | #pragma mark basics |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 设置 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | |
| | | |
| | | #pragma mark event logs |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 页面计时 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 手动页面时长统计, 记录某个页面展示的时长. |
| | | @param pageName 统计的页面名称. |
| | | @param seconds 单位为秒,int型. |
| | | @return void. |
| | | */ |
| | | + (void)logPageView:(NSString *)pageName seconds:(int)seconds; |
| | | |
| | | /** 自动页面时长统计, 开始记录某个页面展示时长. |
| | | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 |
| | | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: |
| | | @param pageName 统计的页面名称. |
| | | @return void. |
| | | */ |
| | | + (void)beginLogPageView:(NSString *)pageName; |
| | | |
| | | /** 自动页面时长统计, 结束记录某个页面展示时长. |
| | | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 |
| | | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: |
| | | @param pageName 统计的页面名称. |
| | | @return void. |
| | | */ |
| | | + (void)endLogPageView:(NSString *)pageName; |
| | | |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 事件统计 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | |
| | | @param eventId 网站上注册的事件Id. |
| | | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. |
| | | @param accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。 |
| | | @return void. |
| | | */ |
| | | + (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId; |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | */ |
| | | + (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId; |
| | | |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | */ |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes; |
| | | |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number; |
| | | |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来 |
| | | |
| | | @param eventId 网站上注册的事件Id. |
| | | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. |
| | | @param primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey |
| | | @param millisecond 自己计时需要的话需要传毫秒进来 |
| | | @return void. |
| | | |
| | | @warning 每个event的attributes不能超过100个 |
| | | eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符) |
| | | id, ts, du是保留字段,不能作为eventId及key的名称 |
| | | */ |
| | | + (void)beginEvent:(NSString *)eventId; |
| | | |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)beginEvent:(NSString *)eventId label:(NSString *)label; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId label:(NSString *)label; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)event:(NSString *)eventId durations:(int)millisecond; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond; |
| | | |
| | | |
| | | #pragma mark - user methods |
| | | /** active user sign-in. |
| | | 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数 |
| | | @param puid : user's ID |
| | | @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。 |
| | | @return void. |
| | | */ |
| | | + (void)profileSignInWithPUID:(NSString *)puid; |
| | | + (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider; |
| | | |
| | | /** active user sign-off. |
| | | 停止sign-in PUID的统计 |
| | | @return void. |
| | | */ |
| | | + (void)profileSignOff; |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 地理位置设置 |
| | | /// 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h> |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 设置经纬度信息 |
| | | @param latitude 纬度. |
| | | @param longitude 经度. |
| | | @return void |
| | | */ |
| | | + (void)setLatitude:(double)latitude longitude:(double)longitude; |
| | | |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name Utility函数 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 判断设备是否越狱,依据是否存在apt和Cydia.app |
| | | */ |
| | | + (BOOL)isJailbroken; |
| | | |
| | | /** 判断App是否被破解 |
| | | */ |
| | | + (BOOL)isPirated; |
| | | |
| | | /** 设置 app secret |
| | | @param secret string |
| | | @return void. |
| | | */ |
| | | + (void)setSecret:(NSString *)secret; |
| | | |
| | | |
| | | /** |
| | | * 设置预置事件属性 键值对 会覆盖同名的key |
| | | */ |
| | | +(void) registerPreProperties:(NSDictionary *)property; |
| | | |
| | | /** |
| | | * |
| | | * 删除指定预置事件属性 |
| | | @param key |
| | | */ |
| | | +(void) unregisterPreProperty:(NSString *)propertyName; |
| | | |
| | | /** |
| | | * 获取预置事件所有属性;如果不存在,则返回空。 |
| | | */ |
| | | +(NSDictionary *)getPreProperties; |
| | | |
| | | /** |
| | | *清空所有预置事件属性。 |
| | | */ |
| | | +(void)clearPreProperties; |
| | | |
| | | |
| | | /** |
| | | * 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效 |
| | | */ |
| | | +(void)setFirstLaunchEvent:(NSArray *)eventList; |
| | | |
| | | /** 设置是否自动采集页面, 默认NO(不自动采集). |
| | | @param value 设置为YES, umeng SDK 会将自动采集页面信息 |
| | | */ |
| | | + (void)setAutoPageEnabled:(BOOL)value; |
| | | |
| | | /** |
| | | *集成测试。 |
| | | */ |
| | | + (BOOL)handleUrl:(NSURL *)url; |
| | | |
| | | |
| | | @end |
| | | |
| | | |
New file |
| | |
| | | // |
| | | // UMCommon.h |
| | | // UMCommon |
| | | // |
| | | // Created by San Zhang on 11/2/16. |
| | | // Copyright © 2016 UMeng. All rights reserved. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | //! Project version number for UMCommon. |
| | | FOUNDATION_EXPORT double UMCommonVersionNumber; |
| | | |
| | | //! Project version string for UMCommon. |
| | | FOUNDATION_EXPORT const unsigned char UMCommonVersionString[]; |
| | | |
| | | // In this header, you should import all the public headers of your framework using statements like #import <UMCommon/PublicHeader.h> |
| | | |
| | | #import <UMCommon/UMConfigure.h> |
New file |
| | |
| | | // |
| | | // UMConfigure.h |
| | | // UMCommon |
| | | // |
| | | // Created by San Zhang on 9/6/16. |
| | | // Copyright © 2016 UMeng. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface UMConfigure : NSObject |
| | | |
| | | /** 初始化友盟所有组件产品 |
| | | @param appKey 开发者在友盟官网申请的appkey. |
| | | @param channel 渠道标识,可设置nil表示"App Store". |
| | | */ |
| | | + (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel; |
| | | |
| | | /** 设置是否在console输出sdk的log信息. |
| | | @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO. |
| | | */ |
| | | + (void)setLogEnabled:(BOOL)bFlag; |
| | | |
| | | /** 设置是否对日志信息进行加密, 默认NO(不加密). |
| | | @param value 设置为YES, umeng SDK 会将日志信息做加密处理 |
| | | */ |
| | | + (void)setEncryptEnabled:(BOOL)value; |
| | | |
| | | + (NSString *)umidString; |
| | | |
| | | /** |
| | | 集成测试需要device_id |
| | | */ |
| | | + (NSString*)deviceIDForIntegration; |
| | | |
| | | /** 是否开启统计,默认为YES(开启状态) |
| | | @param value 设置为NO,可关闭友盟统计功能. |
| | | @return void. |
| | | */ |
| | | + (void)setAnalyticsEnabled:(BOOL)value; |
| | | |
| | | //获取zid |
| | | + (NSString *)getUmengZID; |
| | | |
| | | @end |
New file |
| | |
| | | // |
| | | // MobClick.h |
| | | // Analytics |
| | | // |
| | | // Copyright (C) 2010-2017 Umeng.com . All rights reserved. |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface MobClick : NSObject |
| | | |
| | | #pragma mark basics |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 设置 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | |
| | | |
| | | #pragma mark event logs |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 页面计时 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 手动页面时长统计, 记录某个页面展示的时长. |
| | | @param pageName 统计的页面名称. |
| | | @param seconds 单位为秒,int型. |
| | | @return void. |
| | | */ |
| | | + (void)logPageView:(NSString *)pageName seconds:(int)seconds; |
| | | |
| | | /** 自动页面时长统计, 开始记录某个页面展示时长. |
| | | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 |
| | | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: |
| | | @param pageName 统计的页面名称. |
| | | @return void. |
| | | */ |
| | | + (void)beginLogPageView:(NSString *)pageName; |
| | | |
| | | /** 自动页面时长统计, 结束记录某个页面展示时长. |
| | | 使用方法:必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据。 |
| | | 在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView: |
| | | @param pageName 统计的页面名称. |
| | | @return void. |
| | | */ |
| | | + (void)endLogPageView:(NSString *)pageName; |
| | | |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 事件统计 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | |
| | | @param eventId 网站上注册的事件Id. |
| | | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. |
| | | @param accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。 |
| | | @return void. |
| | | */ |
| | | + (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId; |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | */ |
| | | + (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId; |
| | | |
| | | /** 自定义事件,数量统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID |
| | | */ |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes; |
| | | |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number; |
| | | |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来 |
| | | |
| | | @param eventId 网站上注册的事件Id. |
| | | @param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. |
| | | @param primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey |
| | | @param millisecond 自己计时需要的话需要传毫秒进来 |
| | | @return void. |
| | | |
| | | @warning 每个event的attributes不能超过100个 |
| | | eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符) |
| | | id, ts, du是保留字段,不能作为eventId及key的名称 |
| | | */ |
| | | + (void)beginEvent:(NSString *)eventId; |
| | | |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)beginEvent:(NSString *)eventId label:(NSString *)label; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId label:(NSString *)label; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)event:(NSString *)eventId durations:(int)millisecond; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | |
| | | + (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond; |
| | | /** 自定义事件,时长统计. |
| | | 使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID. |
| | | */ |
| | | + (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond; |
| | | |
| | | |
| | | #pragma mark - user methods |
| | | /** active user sign-in. |
| | | 使用sign-In函数后,如果结束该PUID的统计,需要调用sign-Off函数 |
| | | @param puid : user's ID |
| | | @param provider : 不能以下划线"_"开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。 |
| | | @return void. |
| | | */ |
| | | + (void)profileSignInWithPUID:(NSString *)puid; |
| | | + (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider; |
| | | |
| | | /** active user sign-off. |
| | | 停止sign-in PUID的统计 |
| | | @return void. |
| | | */ |
| | | + (void)profileSignOff; |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name 地理位置设置 |
| | | /// 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h> |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 设置经纬度信息 |
| | | @param latitude 纬度. |
| | | @param longitude 经度. |
| | | @return void |
| | | */ |
| | | + (void)setLatitude:(double)latitude longitude:(double)longitude; |
| | | |
| | | |
| | | ///--------------------------------------------------------------------------------------- |
| | | /// @name Utility函数 |
| | | ///--------------------------------------------------------------------------------------- |
| | | |
| | | /** 判断设备是否越狱,依据是否存在apt和Cydia.app |
| | | */ |
| | | + (BOOL)isJailbroken; |
| | | |
| | | /** 判断App是否被破解 |
| | | */ |
| | | + (BOOL)isPirated; |
| | | |
| | | /** 设置 app secret |
| | | @param secret string |
| | | @return void. |
| | | */ |
| | | + (void)setSecret:(NSString *)secret; |
| | | |
| | | |
| | | /** |
| | | * 设置预置事件属性 键值对 会覆盖同名的key |
| | | */ |
| | | +(void) registerPreProperties:(NSDictionary *)property; |
| | | |
| | | /** |
| | | * |
| | | * 删除指定预置事件属性 |
| | | @param key |
| | | */ |
| | | +(void) unregisterPreProperty:(NSString *)propertyName; |
| | | |
| | | /** |
| | | * 获取预置事件所有属性;如果不存在,则返回空。 |
| | | */ |
| | | +(NSDictionary *)getPreProperties; |
| | | |
| | | /** |
| | | *清空所有预置事件属性。 |
| | | */ |
| | | +(void)clearPreProperties; |
| | | |
| | | |
| | | /** |
| | | * 设置关注事件是否首次触发,只关注eventList前五个合法eventID.只要已经保存五个,此接口无效 |
| | | */ |
| | | +(void)setFirstLaunchEvent:(NSArray *)eventList; |
| | | |
| | | /** 设置是否自动采集页面, 默认NO(不自动采集). |
| | | @param value 设置为YES, umeng SDK 会将自动采集页面信息 |
| | | */ |
| | | + (void)setAutoPageEnabled:(BOOL)value; |
| | | |
| | | /** |
| | | *集成测试。 |
| | | */ |
| | | + (BOOL)handleUrl:(NSURL *)url; |
| | | |
| | | |
| | | @end |
| | | |
| | | |
New file |
| | |
| | | // |
| | | // UMCommon.h |
| | | // UMCommon |
| | | // |
| | | // Created by San Zhang on 11/2/16. |
| | | // Copyright © 2016 UMeng. All rights reserved. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | //! Project version number for UMCommon. |
| | | FOUNDATION_EXPORT double UMCommonVersionNumber; |
| | | |
| | | //! Project version string for UMCommon. |
| | | FOUNDATION_EXPORT const unsigned char UMCommonVersionString[]; |
| | | |
| | | // In this header, you should import all the public headers of your framework using statements like #import <UMCommon/PublicHeader.h> |
| | | |
| | | #import <UMCommon/UMConfigure.h> |
New file |
| | |
| | | // |
| | | // UMConfigure.h |
| | | // UMCommon |
| | | // |
| | | // Created by San Zhang on 9/6/16. |
| | | // Copyright © 2016 UMeng. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface UMConfigure : NSObject |
| | | |
| | | /** 初始化友盟所有组件产品 |
| | | @param appKey 开发者在友盟官网申请的appkey. |
| | | @param channel 渠道标识,可设置nil表示"App Store". |
| | | */ |
| | | + (void)initWithAppkey:(NSString *)appKey channel:(NSString *)channel; |
| | | |
| | | /** 设置是否在console输出sdk的log信息. |
| | | @param bFlag 默认NO(不输出log); 设置为YES, 输出可供调试参考的log信息. 发布产品时必须设置为NO. |
| | | */ |
| | | + (void)setLogEnabled:(BOOL)bFlag; |
| | | |
| | | /** 设置是否对日志信息进行加密, 默认NO(不加密). |
| | | @param value 设置为YES, umeng SDK 会将日志信息做加密处理 |
| | | */ |
| | | + (void)setEncryptEnabled:(BOOL)value; |
| | | |
| | | + (NSString *)umidString; |
| | | |
| | | /** |
| | | 集成测试需要device_id |
| | | */ |
| | | + (NSString*)deviceIDForIntegration; |
| | | |
| | | /** 是否开启统计,默认为YES(开启状态) |
| | | @param value 设置为NO,可关闭友盟统计功能. |
| | | @return void. |
| | | */ |
| | | + (void)setAnalyticsEnabled:(BOOL)value; |
| | | |
| | | //获取zid |
| | | + (NSString *)getUmengZID; |
| | | |
| | | @end |
New file |
| | |
| | | // |
| | | // UMZid.h |
| | | // UMZid |
| | | // |
| | | // Created by UMZid on 8/29/20. |
| | | // Copyright © 2020 UMZid. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface UMZid : NSObject |
| | | |
| | | /// SDK初始化,异步请求uToken |
| | | /// @param appkey appkey |
| | | /// @param completion 请求uToken的回调,uToken为返回值,如果失败,uToken为空字符串@“” |
| | | + (void)initWithAppKey:(NSString *)appkey completion:(void (^)(NSString *uToken))completion; |
| | | |
| | | /// 同步获得uToken,失败返回空字符串@“” |
| | | + (NSString *)getZID; |
| | | |
| | | /// 获取SDK版本号 |
| | | + (NSString *)getSDKVersion; |
| | | |
| | | /// 获得resetToken |
| | | + (NSString *)getResetToken; |
| | | |
| | | /// 获得at |
| | | + (NSString *)getATStr; |
| | | @end |
| | |
| | | <Reference Include="Shared.IOS.HDLSceneSiri"> |
| | | <HintPath>..\..\HDLXamarinSceneSiri\Shared.IOS.HDLSceneSiri\Shared.IOS.HDLSceneSiri\bin\Release\Shared.IOS.HDLSceneSiri.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="UMSdk"> |
| | | <HintPath>..\DLL\UMeng\UMSdk.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <PackageReference Include="Newtonsoft.Json"> |
| | |
| | | <Project>{8B1652FA-5158-4D57-B90D-07BB91766625}</Project> |
| | | <Name>SiriKit</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\UMSdk\UMSdk.csproj"> |
| | | <Project>{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}</Project> |
| | | <Name>UMSdk</Name> |
| | | </ProjectReference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Content Include="Base.lproj\Intents.intentdefinition" /> |
| | |
| | | { |
| | | if (OnAppConfig.Instance.IsLogin) |
| | | { |
| | | var um = new UMSdk.HDLUMSDK(); |
| | | um.InitUMSDKWithAppKey("61d56642e0f9bb492bbc3e72", "IOS"); |
| | | //var um = new UMSdk.HDLUMSDK(); |
| | | UMSdk.HDLUMSDK.InitUMSDKWithAppKey("61d56642e0f9bb492bbc3e72", "IOS"); |
| | | break; |
| | | } |
| | | System.Threading.Thread.Sleep(1000); |
| | | } |
| | |
| | | /// 固定域名,正式环境 |
| | | /// 公共域名就近解析 |
| | | /// </summary> |
| | | public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | /// <summary> |
| | | /// RegionMark |
| | | /// </summary> |
| | |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(50), |
| | | Height = Application.GetRealHeight(400), |
| | | Height = Application.GetRealHeight(390), |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | BorderColor = 0x00000000, |
| | | BorderWidth = 0, |
| | |
| | | /// 固定域名,正式环境 |
| | | /// 公共域名就近解析 |
| | | /// </summary> |
| | | public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | /// <summary> |
| | | /// RegionMark |
| | | /// </summary> |
| | |
| | | using Foundation; |
| | | using UIKit; |
| | | |
| | | namespace NativeLibrary |
| | | namespace UMSdk |
| | | { |
| | | // The first step to creating a binding is to add your native library ("libNativeLibrary.a") |
| | | // to the project by right-clicking (or Control-clicking) the folder containing this source |
| | | // file and clicking "Add files..." and then simply select the native library (or libraries) |
| | | // that you want to bind. |
| | | // |
| | | // When you do that, you'll notice that MonoDevelop generates a code-behind file for each |
| | | // native library which will contain a [LinkWith] attribute. VisualStudio auto-detects the |
| | | // architectures that the native library supports and fills in that information for you, |
| | | // however, it cannot auto-detect any Frameworks or other system libraries that the |
| | | // native library may depend on, so you'll need to fill in that information yourself. |
| | | // |
| | | // Once you've done that, you're ready to move on to binding the API... |
| | | // |
| | | // |
| | | // Here is where you'd define your API definition for the native Objective-C library. |
| | | // |
| | | // For example, to bind the following Objective-C class: |
| | | // |
| | | // @interface Widget : NSObject { |
| | | // } |
| | | // |
| | | // The C# binding would look like this: |
| | | // |
| | | // [BaseType (typeof (NSObject))] |
| | | // interface Widget { |
| | | // } |
| | | // |
| | | // To bind Objective-C properties, such as: |
| | | // |
| | | // @property (nonatomic, readwrite, assign) CGPoint center; |
| | | // |
| | | // You would add a property definition in the C# interface like so: |
| | | // |
| | | // [Export ("center")] |
| | | // CGPoint Center { get; set; } |
| | | // |
| | | // To bind an Objective-C method, such as: |
| | | // |
| | | // -(void) doSomething:(NSObject *)object atIndex:(NSInteger)index; |
| | | // |
| | | // You would add a method definition to the C# interface like so: |
| | | // |
| | | // [Export ("doSomething:atIndex:")] |
| | | // void DoSomething (NSObject object, int index); |
| | | // |
| | | // Objective-C "constructors" such as: |
| | | // |
| | | // -(id)initWithElmo:(ElmoMuppet *)elmo; |
| | | // |
| | | // Can be bound as: |
| | | // |
| | | // [Export ("initWithElmo:")] |
| | | // IntPtr Constructor (ElmoMuppet elmo); |
| | | // |
| | | // For more information, see https://aka.ms/ios-binding |
| | | // |
| | | // @interface HDLUMSDK : NSObject |
| | | [BaseType(typeof(NSObject))] |
| | | [Protocol] |
| | | interface HDLUMSDK |
| | | { |
| | | // +(void)initUMSDKWithAppKey:(NSString *)appKey channel:(NSString *)channel; |
| | | [Static] |
| | | [Export("initUMSDKWithAppKey:channel:")] |
| | | void InitUMSDKWithAppKey(string appKey, string channel); |
| | | } |
| | | } |
| | | |