欢迎光临
我们一直在努力

iOS 定时唤醒打卡界面

背景

公司对于打卡时间有要求,而且要早中晚三次打卡,之前习惯了上班人脸打卡,刚开始不适应,老是会忘记,所以就萌生了使用快捷指令,定时唤起打卡界面,这样即使中午吃饭的时候忘记了,看手机时也会自动跳转,就能想起来要打卡。

实现逻辑

– 应用支持universalLink,这个应该大部分应用都已经有了,因为微信分享之前更新升级的时候,已经有要求了。

– 简单的快捷指令的制作,如果不会,可以参考快捷指令入门

下面,就来一步步实现:

首先,找到自己应用的universalLink,比如是https://www.baidu.com/,可以在Xcode的Assoicated Domains中看到,如下图:

applinks:后面的链接即是APP支持的UniversalLink,然后把applinks:后面的内容复制出来到备忘录中,在前面添加https://,然后保存,点击打开,看是否会跳转APP——跳转即说明链接正确。可以继续下一步。

第二步,是使用UniversalLink,点击跳转APP,如何打开指定页面的问题,比如打卡界面,或者其它页面。

思路:

1. 在链接后拼接指定参数,代表跳转指定页面;

2. 在指定地方拦截这个链接,进行跳转处理。

使用UniversalLink跳转的,可以在AppDelegate中的application:continueUserActivity:restorationHandler:方法中处理,如下:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler {
// NSUserActivityTypeBrowsingWeb 由Universal y唤醒的APP
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *webpageURL = userActivity.webpageURL;
NSString *host = webpageURL.host;
if ([host isEqualToString:@\"yourhost.com\"]) {
//进行我们需要的处理
// 说明是自己公司的链接,进行处理
// 提取链接中参数,根据参数跳转指定界面
} else {
[[UIApplication sharedApplication]openURL:webpageURL];
}
}
return YES;
}

然后在备忘录中点击刚刚拼接好的链接,看能否跳转到指定界面。如果成功,可以进行下一步。

下一步就是创建快捷指令,

1. 打开“快捷指令”APP

2. 点击底部中间的Tab“自动化”

3. 点击右上角“+”按钮,

4. 选择“创建个人自动化”,

5. 选择“特定时间”,

6. 然后修改时间为要设置的时间,并把重复设置为“周”纬度,可以勾选周一到周五,然后点击下一步

7. 选择“添加操作”,在搜索框中输入“URL”,选中搜索结果中的“打开URL”,然后把URL的地址设置为刚刚拼接的地址,点击下一步

8. 把运行前询问开关关闭,然后点击完成。

这样就完成了一个自动化指令,每周一到周五,每天特定时间会执行打开刚刚那个URL的操作。

然后可以自己试一下,会发现,打开了APP,却没有跳转到指定界面,为什么呢?哈哈,明明已经添加了处理,为什么没有跳转呢?

因为这种打开URL跳转到APP的,拦截方法并不是上面那个application:continueUserActivity:restorationHandler:方法,而是另外一个,AppDelegate中application:openURL:options:方法,故而把上面的处理在这里也添加一下即可

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
NSURL *webpageURL = userActivity.webpageURL;
NSString *host = webpageURL.host;
if ([host isEqualToString:@\"yourhost.com\"]) {
//进行我们需要的处理
// 说明是自己公司的链接,进行处理
// 提取链接中参数,根据参数跳转指定界面
} else {
[[UIApplication sharedApplication]openURL:webpageURL];
}
}
return YES;
}

然后运行,就发现完美了,

赞(0) 打赏
未经允许不得转载:黑客技术网 » iOS 定时唤醒打卡界面
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏