首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
移动端开发
›
IOS
›
iOS-自界说Intent及ShortCut,能通过快捷指令唤醒APP并 ...
返回列表
发新帖
iOS-自界说Intent及ShortCut,能通过快捷指令唤醒APP并跳转到指定页面
[复制链接]
发表于 2024-8-29 20:23:01
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
1.Xcode->New->File->搜刮Intent
2.在新建的intent文件中中New intent
3.完善资料,内容可自界说
4.创建Extension,file -> new -> target , 选择 Intents Extension 即可
创建完成后,在intents文件中勾选以下target,否则在扩展里,无法访问到前面创建的Intent类
编译程序,Xcode 会自动天生对应的类,我这里的话会天生 LaunchAppIntent 类,下面需要使用
5.完善IntentHandler
引入上述天生的文件,并写入代理,如果之前未勾选target是无法引入的
在代理中写入,以及点击确认按钮后实行的事故
- (void)handleLaunchApp:(LaunchAppIntent *)intent completion:(void (^)(LaunchAppIntentResponse * _Nonnull))completion {
completion([[LaunchAppIntentResponse alloc] initWithCode:LaunchAppIntentResponseCodeContinueInApp userActivity:nil]);
}
- (void)confirmLaunchApp:(LaunchAppIntent *)intent completion:(void (^)(LaunchAppIntentResponse * _Nonnull))completion {
NSUserActivity *userActivity = [[NSUserActivity alloc] initWithActivityType:NSStringFromClass([LaunchAppIntent class])];
LaunchAppIntentResponse *response = [[LaunchAppIntentResponse alloc] initWithCode:LaunchAppIntentResponseCodeSuccess userActivity:userActivity];
completion(response);
}
复制
代码
6.在手机快捷指令中可以进行测试,新增快捷指令,搜刮Xcode中设置好的,点击完成
点击创建好的指令,即能实现唤起APP,也可通过Siri唤醒,名字按照上述自行界说
7.实现APP自动跳转到制动页面
在AppDelegate中引入你要跳转的界面和intent,唤醒APP会通过一下方法进行实行,设置好快捷指令后将会自动跳转到你设置好的控制器
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
if([userActivity.interaction.intent isKindOfClass:[LaunchAppIntent class]]){
ViewController *vc = [ViewController new];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
self.window.rootViewController = nav;
ViewController2 *secondVC = [[ViewController2 alloc] init];
[vc.navigationController pushViewController:secondVC animated:YES];
return YES;
}
return NO;
}
复制
代码
8.如果想进行多种操作,可以在此处设置Parameters,在Parameters内新增变量
demo在这里
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
返回列表
去皮卡多
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表