上一家企业从指纹打卡改为企业微信打卡后就花了点时间写了一个远程打卡的插件,实现的主要功能有:1、虚拟定位;2、现场拍照改为可从相册选择照片。
安装方法:1、可以增加我的个人源 https://evildriver.github.io
,里面有个WeWorkHelper企业微信助手
安装即可以了;2、在WeWorkHelper资源包内部packages
里面有插件包,直接使用iFunBox
即可以安装。
整个插件项目在WeWorkHelper下载。
先上源码:
#import "WindowInfoManager.h"#import "AppDelegate.h"#import "WWKAttendanceRamdonCheckViewController.h"#import "SuspensionView.h"#import <MobileCoreServices/MobileCoreServices.h>#import "WWKAttendanceBinaryCheckViewController.h"#import <CoreLocation/CoreLocation.h>#import "WWKConversationLBSViewController.h"#import "WWKMessageListController.h"#import "HelperSettingController.h"%hook AppDelegate- (_Bool)application:(id)arg1 didFinishLaunchingWithOptions:(id)arg2 { //[[WindowInfoManager manager] addToWindow:self.window]; return %orig;}%end%hook UIImagePickerController//设置能否从相册选择- (void)setSourceType:(UIImagePickerControllerSourceType)sourceType { if ([MainKeyMananer manager].on && [MainKeyMananer manager].selectFromAlbum) { sourceType = UIImagePickerControllerSourceTypePhotoLibrary; self.mediaTypes = @[(NSString*)kUTTypeImage]; } %orig;}//设置能否可编辑- (void)setAllowsEditing:(BOOL)allowsEditing { if ([MainKeyMananer manager].on && [MainKeyMananer manager].photoEdit) { allowsEditing = YES; } %orig;}%end%hook WWKMessageListController//在首页增加助手设置入口- (void)viewDidAppear:(BOOL)animated { %orig; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"助手设置" style:UIBarButtonItemStylePlain target:self action:@selector(xl_setLocationClicked:)];}%new- (void)xl_setLocationClicked:(id)sender { HelperSettingController *vc = [%c(HelperSettingController) new]; [self.navigationController pushViewController:(UIViewController *)vc animated:YES];}%end %hook CLLocation- (CLLocationCoordinate2D)coordinate { if ([MainKeyMananer manager].on && [MainKeyMananer manager].fakeLocation) { NSNumber *latitudeObj = [[NSUserDefaults standardUserDefaults] objectForKey:@"kXLLatitude"]; NSNumber *longitudeObj = [[NSUserDefaults standardUserDefaults] objectForKey:@"kXLLongitude"]; if(!latitudeObj || !longitudeObj){ return %orig; }else { CGFloat latitude = [latitudeObj floatValue]; CGFloat longitude = [longitudeObj floatValue]; CLLocationCoordinate2D coor = CLLocationCoordinate2DMake(latitude, longitude); return coor; } }else { return %orig; }}%end
MainKeyMananer
主要是控制开关。
void p_send(id self, SEL _cmd, id arg1) { Ivar ivar = class_getInstanceVariable([self class], "_selectionItem"); // 返回名为test的ivar变量的值 WWKLocationItem *item = (WWKLocationItem *)object_getIvar(self, ivar); CLLocationCoordinate2D coor = item.coordinate; NSString *string = [NSString stringWithFormat:@"%lf,%lf", coor.latitude, coor.longitude]; [[NSUserDefaults standardUserDefaults] setObject:@(coor.latitude) forKey:@"kXLLatitude"]; [[NSUserDefaults standardUserDefaults] setObject:@(coor.longitude) forKey:@"kXLLongitude"]; [[NSNotificationCenter defaultCenter] postNotificationName:@"kNotificationVCLoad" object:string]; UIViewController *vc = (UIViewController *)self; [vc.navigationController popViewControllerAnimated:YES];}void viewDidLoad(id self, SEL _cmd) { //调用父类的viewdidload方法 SEL superSel = _cmd; Method sm = class_getInstanceMethod([self superclass], superSel); IMP imp = method_getImplementation(sm); imp(self, superSel); UIViewController *vc = (UIViewController *)self; vc.title = @"虚拟定位"; vc.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"确定" style:UIBarButtonItemStylePlain target:self action:@selector(p_send:)];}//runtime增加继承类Class LocationSelectViewController = objc_allocateClassPair(NSClassFromString(@"WWKConversationLBSViewController"), "LocationSelectViewController", 0);{ BOOL success = class_addMethod(LocationSelectViewController, @selector(p_send:), (IMP)p_send, "V@:"); if (success) { NSLog(@"增加方法成功"); }}{ BOOL success = class_addMethod(LocationSelectViewController, @selector(viewDidLoad), (IMP)viewDidLoad, "V@:"); if (success) { NSLog(@"增加方法成功"); }}id vc = [LocationSelectViewController new];[self.navigationController pushViewController:(UIViewController *)vc animated:YES];
如有问题,请留言。
高端教育培训商业教学类织梦模板(带手机版)
户口信息资讯网
在线影院自适应模板,整合优酷云、ck在线播放
dedecms小清爽文章资讯网站模板小说文章文学写真网站源码风格模板
站群优化超级蜘蛛池引流必备自动采集支持外推支持添加客户
交互的网页背景颜色切换特效源代码下载
直播源码app,成品直播app源码,直播源码搭建
fastadminCMS内容管理系统V1.5.23高级授权版 高级授权版带有uniapp,CMS说明
苹果cms v10模板漂亮精品PC+移动端苹果cmsv10模板支持自动采集
大疆精灵4SDK客户端认证