diff --git a/Doc/iOS_cn_guide.md b/Doc/iOS_cn_guide.md index b2a899669841bd70fc8f4af6540aa7c71b48b4e2..86ecf87f949d6c64c92f0b25214086f2b74f98c4 100644 --- a/Doc/iOS_cn_guide.md +++ b/Doc/iOS_cn_guide.md @@ -28,14 +28,17 @@ MockGPS存在一些兼容性问题(绝大部分情况是好的,问题详见[ ### 2、使用DoraemonKit内置工具集的接入方式 在App启动的时候添加一下代码 -``` +```objective-c #ifdef DEBUG #import #endif - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { #ifdef DEBUG + //默认 [[DoraemonManager shareInstance] install]; + // 或者使用传入位置,解决遮挡关键区域,减少频繁移动 + //[[DoraemonManager shareInstance] installWithStartingPosition:CGPointMake(66, 66)]; #endif } ``` @@ -57,7 +60,7 @@ MockGPS存在一些兼容性问题(绝大部分情况是好的,问题详见[ } @end ``` - + 第二步:在Doraemon初始化的地方添加第一步中添加的“环境切换”插件 diff --git a/iOS/DoraemonKit/Src/Core/Define/DoraemonDefine.h b/iOS/DoraemonKit/Src/Core/Define/DoraemonDefine.h index 3d743b36fd3ce1a5bc1102f8ca7800906ea58890..87f8a77459e61a033cfde8f2f2797c29cb61c4d3 100644 --- a/iOS/DoraemonKit/Src/Core/Define/DoraemonDefine.h +++ b/iOS/DoraemonKit/Src/Core/Define/DoraemonDefine.h @@ -20,6 +20,9 @@ #define DoraemonScreenWidth [UIScreen mainScreen].bounds.size.width #define DoraemonScreenHeight [UIScreen mainScreen].bounds.size.height +//Doraemon默认位置 +#define DoraemonStartingPosition CGPointMake(0, DoraemonScreenHeight/3.0) + //根据750*1334分辨率计算size #define kDoraemonSizeFrom750(x) ((x)*DoraemonScreenWidth/750) // 如果横屏显示 diff --git a/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.h b/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.h index eebdc08a8a41de8289e9ad65db75be22e1d985f0..4c0f262b549e65e62b6c02772fb100a9e078ef00 100644 --- a/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.h +++ b/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.h @@ -10,4 +10,7 @@ @interface DoraemonEntryView : UIWindow +// 定制位置 +@property (nonatomic) CGPoint startingPosition; + @end diff --git a/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.m b/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.m index 96b2785826ee24a7e60bd794a040198ed10ccbc6..e1012b23de44eaa6f91c632760739351dfd2879e 100644 --- a/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.m +++ b/iOS/DoraemonKit/Src/Core/Entry/DoraemonEntryView.m @@ -26,7 +26,18 @@ - (instancetype)init{ _kEntryViewSize = 58; - self = [super initWithFrame:CGRectMake(0, DoraemonScreenHeight/3, _kEntryViewSize, _kEntryViewSize)]; + CGFloat x = self.startingPosition.x; + CGFloat y = self.startingPosition.y; + CGPoint defaultPosition = DoraemonStartingPosition; + if (x < 0 || x > (DoraemonScreenWidth - _kEntryViewSize)) { + x = defaultPosition.x; + } + + if (y < 0 || y > (DoraemonScreenHeight - _kEntryViewSize)) { + y = defaultPosition.y; + } + + self = [super initWithFrame:CGRectMake(x, y, _kEntryViewSize, _kEntryViewSize)]; if (self) { self.backgroundColor = [UIColor clearColor]; self.windowLevel = UIWindowLevelStatusBar + 100.f; diff --git a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h index f874350b18984fadd73f9cc91fabddf77b1254a2..d8ecd8e90e3bd5724506a45476cc15df30e386b5 100644 --- a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h +++ b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h @@ -90,6 +90,9 @@ typedef NS_ENUM(NSUInteger, DoraemonManagerPluginType) { - (void)install; +// 定制起始位置 | 适用正好挡住关键位置 +- (void)installWithStartingPosition:(CGPoint) position; + - (void)installWithCustomBlock:(void(^)(void))customBlock; @property (nonatomic,strong) NSMutableArray *dataArray; diff --git a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m index 5c7858a2d4c204c378274023d958afae8c6dbe0d..589f4d788115ac96f5fc6dc94f4aa530d8794e05 100644 --- a/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m +++ b/iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m @@ -65,6 +65,9 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); @property (nonatomic, assign) BOOL hasInstall; +// 定制位置 +@property (nonatomic) CGPoint startingPosition; + @end @implementation DoraemonManager @@ -79,6 +82,16 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); } - (void)install{ + //启用默认位置 + CGPoint defaultPosition = DoraemonStartingPosition; +// startingPosition = CGPointMake(0, DoraemonScreenHeight/3); +// startingPosition = CGPointMake(0, 0 - 1); +// startingPosition = CGPointMake(100, 100); + [self installWithStartingPosition:defaultPosition]; +} + +- (void)installWithStartingPosition:(CGPoint) position{ + _startingPosition = position; [self installWithCustomBlock:^{ //什么也没发生 }]; @@ -102,7 +115,7 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); [self initData]; customBlock(); - [self initEntry]; + [self initEntry:self.startingPosition]; //根据开关判断是否收集Crash日志 if ([[DoraemonCacheManager sharedInstance] crashSwitch]) { @@ -237,8 +250,13 @@ typedef void (^DoraemonPerformanceBlock)(NSDictionary *); /** 初始化工具入口 */ -- (void)initEntry{ - _entryView = [[DoraemonEntryView alloc] init]; +- (void)initEntry:(CGPoint) startingPosition{ +// _entryView = [[DoraemonEntryView alloc] init]; +// _entryView = [[DoraemonEntryView alloc] init]; + _entryView = [DoraemonEntryView alloc]; + _entryView.startingPosition = startingPosition; + _entryView = [_entryView init]; + [_entryView makeKeyAndVisible]; } diff --git a/iOS/DoraemonKitDemo/DoraemonKitDemo/DoKitAppDelegate.m b/iOS/DoraemonKitDemo/DoraemonKitDemo/DoKitAppDelegate.m index 99722c4da9c42b760f869ca6db32d87986eb5522..7725e7a7415f47a33d50b579086a1db286a42a90 100644 --- a/iOS/DoraemonKitDemo/DoraemonKitDemo/DoKitAppDelegate.m +++ b/iOS/DoraemonKitDemo/DoraemonKitDemo/DoKitAppDelegate.m @@ -36,6 +36,7 @@ [DoraemonManager shareInstance].bigImageDetectionSize = 10 * 1024;//大图检测只检测10K以上的 [DoraemonManager shareInstance].startClass = @"DoKitAppDelegate"; [[DoraemonManager shareInstance] install]; + //[[DoraemonManager shareInstance] installWithStartingPosition:CGPointMake(66, 66)]; [[DoraemonManager shareInstance] addANRBlock:^(NSDictionary *anrDic) { NSLog(@"anrDic == %@",anrDic);