Commit 7938974f authored by 翟国钧's avatar 翟国钧

Merge branch 'wy/present' into 'master'

Wy/present



See merge request !12
parents 9868d239 c0ec284f
......@@ -15,10 +15,10 @@
/**
* @brief 开启Phobos统计,默认以BATCH方式发送log.
*
* @param appName
* @param channelId
* @param appName 通常由数据端与客户端一起确认的区分不同app的名字
* @param channelId 发布渠道
*
* @return
* @return Phobos实例
*
* @since 0.0.1
*/
......@@ -43,8 +43,6 @@
/**
* @brief 设置是否打印sdk的log信息,默认不开启
*
* @param value 设置为YES,phobos SDK 会输出log信息,记得release产品时要设置回NO.
*
* @since 0.0.1
*/
@property (assign, nonatomic) BOOL logEnabled;
......@@ -52,7 +50,6 @@
/**
* @brief 设置当前登录用户的ID,如果没有默认为@""
*
* @param userId
*
* @since 0.0.2
*/
......@@ -63,7 +60,6 @@
*
* @brief 用户当前的城市id
*
* @param currentCityId
*
* @since 0.2.7
*/
......
......@@ -183,6 +183,7 @@ static NSString *sdkVersion = @"110";
/**
* @brief 应用进入后台的处理
*
* @since 0.0.1
*/
- (void)handleAppInBackgound:(id)sender{
......@@ -296,7 +297,7 @@ static NSString *sdkVersion = @"110";
- (void)onPVStart:(UIResponder<PhobosPVProtocol> *)page {
// 必须在此处调用一下referer,因为onControllerStart
[page initReferer];
[page initReferrerIdIfNil ];
[page initReferrerIdIfNil];
page.inTime = [PhobosUtil currentTime];
}
......
......@@ -31,11 +31,10 @@
* @author 翟国钧 in 16-02-25 19:02:32
*
* @brief 获取前一个页面的pageName。
* 只读,以后如果业务涉及到referer的set方法,那么再升级Phobos,此时先不做过多考虑 by wangyang at 2017-2-7
*
* @since 5.9.1
*/
@property (nonatomic, readonly, nonnull) NSString *referer;
@property (nonatomic, copy, nonnull) NSString *referer;
/**
当前VC.view 显示的时候的时间戳
......
......@@ -26,7 +26,6 @@ typedef void (^SendDataSuccessBlock)(NSInteger code);
/**
* @brief 上传数据
*
* @param data,success
*
* @since 0.0.1
*/
......
......@@ -137,10 +137,6 @@
/**
* @brief 将对象转成JSON格式数据
*
* @param obj
*
* @return
*
* @since 0.0.1
*/
+ (NSData *)encodeJSON:(id)obj {
......@@ -151,9 +147,6 @@
/**
* @brief 获取当前时间的毫秒数
*
* @return
*
* @since 0.0.1
*/
+ (NSString *)currentTime {
......@@ -166,8 +159,6 @@
/**
* @brief 获取当前APP的版本号
*
* @return
*
* @since 0.0.1
*/
+ (NSString *)getAppVersion {
......
......@@ -17,24 +17,31 @@
*
* @brief 取当前导航栈中当前VC的上级VC,如果该VC存在,就获取他的pageName
*
* @return 前一页的pageName
*
* @since 5.9.1
*/
- (void)initReferer {
if ([self isKindOfClass:[UIViewController class]]) {
NSArray *navigationPool = ((UIViewController *)self).navigationController.viewControllers;
NSInteger refererIndex = navigationPool.count - 2;
if (refererIndex < 0 ) {
return ;
// 只有不为空,且是controller的情况下才自动获取
if (self.referer == nil && [self isKindOfClass:[UIViewController class]]) {
// 分present与navigation两种情况
UIViewController *me = (UIViewController *)self;
if (me.presentingViewController != nil) {
objc_setAssociatedObject(self, @selector(referer), me.presentingViewController.pageName, OBJC_ASSOCIATION_COPY);
} else {
NSArray *navigationPool = ((UIViewController *)self).navigationController.viewControllers;
NSInteger refererIndex = navigationPool.count - 2;
if (refererIndex < 0 ) {
return ;
}
UIViewController *controller = navigationPool[refererIndex];
objc_setAssociatedObject(self, @selector(referer), controller.pageName, OBJC_ASSOCIATION_COPY);
}
UIViewController *controller = navigationPool[refererIndex];
objc_setAssociatedObject(self, @selector(referer), controller.pageName, OBJC_ASSOCIATION_COPY);
} else {
objc_setAssociatedObject(self, @selector(referer), @"", OBJC_ASSOCIATION_COPY);
}
}
- (void)setReferer:(NSString *)referer {
objc_setAssociatedObject(self, @selector(referer), referer, OBJC_ASSOCIATION_COPY);
}
- (NSString *)referer
{
NSString *referer = objc_getAssociatedObject(self, @selector(referer));
......@@ -73,15 +80,22 @@
}
- (void)initReferrerIdIfNil {
// 只有不为空,且是controller的情况下才自动获取
if (self.referrerId == nil && [self isKindOfClass:[UIViewController class]]) {
NSArray *navigationPool = ((UIViewController *)self).navigationController.viewControllers;
NSInteger refererIdIndex = navigationPool.count - 2;
if (refererIdIndex < 0) {
objc_setAssociatedObject(self, @selector(referrerId), @"", OBJC_ASSOCIATION_COPY);
// 分present与navigation两种情况
UIViewController *me = (UIViewController *)self;
if (me.presentingViewController != nil) {
objc_setAssociatedObject(self, @selector(referrerId), me.presentingViewController.businessId, OBJC_ASSOCIATION_COPY);
} else {
UIViewController *controller = navigationPool[refererIdIndex];
NSString *preBusinessId = controller.businessId;
objc_setAssociatedObject(self, @selector(referrerId), preBusinessId, OBJC_ASSOCIATION_COPY);
NSArray *navigationPool = ((UIViewController *)self).navigationController.viewControllers;
NSInteger refererIdIndex = navigationPool.count - 2;
if (refererIdIndex < 0) {
objc_setAssociatedObject(self, @selector(referrerId), @"", OBJC_ASSOCIATION_COPY);
} else {
UIViewController *controller = navigationPool[refererIdIndex];
NSString *preBusinessId = controller.businessId;
objc_setAssociatedObject(self, @selector(referrerId), preBusinessId, OBJC_ASSOCIATION_COPY);
}
}
}
}
......@@ -92,7 +106,7 @@
- (NSString *)referrerId {
NSString *referrerId = objc_getAssociatedObject(self, @selector(referrerId));
return referrerId;
return referrerId == nil ? @"" : referrerId;
}
- (BOOL)needLogPV {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment