我添加以下代码:
- (IBAction)done {
// Return any edited content to the host app.
// This template doesn't do anything, so we just echo the passed in items.
NSURL *url = [NSURL URLWithString:@"lister://today"];
[self.extensionContext openURL:url completionHandler:^(BOOL success) {
NSLog(@"fun=%s after completion. success=%d", __func__, success);
}];
[self.extensionContext completeRequestReturningItems:self.extensionContext.inputItems completionHandler:nil];
}
Run Code Online (Sandbox Code Playgroud)
在我创建Action Extension目标之后.但它无法奏效.
我的目的是:当用户在Photos.app(iOS的默认Photos.app或被调用的图库)中查看照片时,他点击分享按钮以启动我们的扩展视图.我们可以将Photos.app中的图像传输到我自己的应用程序,并在我的应用程序中处理或上传图像.
我也尝试"CFBundleDocumentTypes"但它也无法工作.
任何帮助将不胜感激.
我想启动我的包含应用程序.
我尝试使用URL方案.
URL方案从其他地方启动了应用程序 - 所以问题不存在.
看起来这个对象是零:
self.extensionContext
Run Code Online (Sandbox Code Playgroud)
因此我无法运行此方法:
[self.extensionContext openURL:url completionHandler:nil];
Run Code Online (Sandbox Code Playgroud)
我可以启动我的应用吗?URL方案是否可以在自定义键盘中使用?
谢谢!
我想用SiriKit开始锻炼.开始锻炼需要从app扩展程序打开主应用程序.
Apple为INStartWorkoutIntentHandling处理程序提供的样板是
func handle(startWorkout startWorkoutIntent: INStartWorkoutIntent, completion: (INStartWorkoutIntentResponse) -> Void) {
let userActivity = NSUserActivity(activityType: NSStringFromClass(INStartWorkoutIntent))
let response = INStartWorkoutIntentResponse(code: .success, userActivity: userActivity)
completion(response)
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能从这里打开自己的应用程序?像myapp://workout?action=start&name=pushups 这样的回答似乎没有相关性,因为我没有这个扩展类型UIViewController的extensionContext属性.
最后一个相关位:对于其他操作(暂停,结束)我宁愿不打开主应用程序,而只是暂停在主应用程序中运行的锻炼.我可以使用类似的自定义URL来暂停它,但这会打开应用程序,这是一个额外的不必要的步骤.有什么好方法告诉主应用程序在不打开应用程序的情况下从INExtension中采取特定操作?