iOS 3DTouch 开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pk_sir/article/details/50884481

看了网上很多贴,但是感觉对于有些人来说太过婉转了,所以我就来个简单粗暴的

1,设置静态标签

首先要在info.plist 里面添加键值

  

UIApplicationShortcutItemType  这个键值设置一个快捷通道类型的字符串

UIApplicationShortcutItemTitle  这个键值设置标签的标题

选填项(下面这些键值不是必须设置的) :

UIApplicationShortcutItemSubtitle  设置标签的副标题

UIApplicationShortcutItemIconType  设置标签Icon类型

UIApplicationShortcutItemIconFile   设置标签的Icon文件

UIApplicationShortcutItemUserInfo  设置信息字典(用于传值)

这个时候代码是这么写的

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler{

    //判断先前我们设置的唯一标识
    if([shortcutItem.type isEqualToString:@"one"]){
        NSArray *arr = @[@"hello 3D Touch"];
        UIActivityViewController *vc = [[UIActivityViewController alloc]initWithActivityItems:arr applicationActivities:nil];这里写的是你静态标签将要打开的页面
        //设置当前的VC 为rootVC
        [self.window.rootViewController presentViewController:vc animated:YES completion:^{
        }];
    }
}
2.动态标签的设置,可以定义icon

#pragma mark - 3DTouch

- (void)checkTouch:(UIApplication*)application

{

    UIApplicationShortcutIcon *scanIcon = [UIApplicationShortcutIcon iconWithTemplateImageName:@"sao_yi_sao"];

    UIApplicationShortcutItem *scanItem = [[UIApplicationShortcutItem alloc]initWithType:@"sao_yi_sao" localizedTitle:@"扫一扫" localizedSubtitle:nil icon:scanIcon userInfo:nil];

    application.shortcutItems =@[scanItem];


}

- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler

{

    if ([shortcutItem.type isEqualToString:@"sao_yi_sao"]) {

       

//实际项目中可能会有跳转到制定页面,以及账户是否在线,登录状态等问题。可能会涉及一些线程间的通 信问题 视具体情况而定,

    }

    

//    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(acceptFirstPageMes) name:@"" object:nil];

//    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(comeHome:) name:@"UIApplicationDidEnterBackgroundNotification" object:nil];

}




阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页