我使用以下来创建相同的想法.
您需要使用桥接器将目标c代码用于swift.
这是用于在Objective c到Swift之间创建桥梁的Link.
完成后,您可以添加以下.h文件yourproject-Bridging-Header.file添加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];
});
}
Run Code Online (Sandbox Code Playgroud)
然后是CustomObject.h
-(void)registerAppforDetectLockState;
Run Code Online (Sandbox Code Playgroud)
现在进入swift代码,您可以直接使用此方法.
var instanceOfCustomObject: LockViewController = LockViewController()
instanceOfCustomObject.registerAppforDetectLockState();
Run Code Online (Sandbox Code Playgroud)
愿这很有帮助.
| 归档时间: |
|
| 查看次数: |
4828 次 |
| 最近记录: |