前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 定时唤醒打卡界面

iOS 定时唤醒打卡界面

原创
作者头像
莫空9081
修改2021-04-15 10:28:30
1.7K0
修改2021-04-15 10:28:30
举报
文章被收录于专栏: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:方法中处理,如下:

代码语言:javascript
复制
- (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:方法,故而把上面的处理在这里也添加一下即可

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)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;
}

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 实现逻辑
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档