如何使用Swift检测锁定/解锁的iOS设备(如Android中的SCRENON / SCREENOFF)
我使用以下来创建相同的想法.
您需要使用桥接器将目标c代码用于swift.
Here is the Link for create the bridge between the Objective c to Swift.
完成后,您可以将以下.h文件添加到您的项目 – 桥接 – 标题中.文件添加yourcontroller.h
然后将NotificationCenter.framework添加到项目中.
进入你的CustomObject.m
#import "notify.h"
-(void)registerappforDetectLockState {
int notify_token;
notify_register_dispatch("com.apple.springboard.lockstate",¬ify_token,dispatch_get_main_queue(),^(int token) {
uint64_t state = UINT64_MAX;
notify_get_state(token,&state);
if(state == 0) {
NSLog(@"unlock device");
} else {
NSLog(@"lock device");
}
NSLog(@"com.apple.springboard.lockstate = %llu",state);
UIlocalnotification *notification = [[UIlocalnotification alloc]init];
notification.repeatInterval = NSCalendarUnitDay;
[notification setAlertBody:@"Hello World!! I come becoz you lock/unlock your device :)"];
notification.alertAction = @"View";
notification.alertAction = @"Yes";
[notification setFireDate:[NSDate dateWithTimeIntervalSinceNow:1]];
notification.soundName = UIlocalnotificationDefaultSoundName;
[notification setTimeZone:[NSTimeZone defaultTimeZone]];
[[UIApplication sharedApplication] presentlocalnotificationNow:notification];
});
}
然后CustomObject.h
-(void)registerappforDetectLockState;
现在进入swift代码,您可以直接使用此方法.
var instanceOfCustomObject: LockViewController = LockViewController() instanceOfCustomObject.registerappforDetectLockState();
愿这有用了.