在iOS 10中,当用户3D触摸应用图标时,也会显示新的今日窗口小部件。我想添加那些启动到应用程序并打开特定文档的按钮(类似于Apple Music小部件)。我应该用什么来实现这个目标?
谢谢
答案 0 :(得分:4)
今天,Extensions有NSExtensionContext
,公开为属性extensionContext。 ExtensionContext有一个openURL方法,您可以通过私有URL来启动您的应用程序。
这是一个非常广泛的问题,因此提供了该技术的广泛概述。
(1)在主应用中注册自定义网址方案,例如MyApp的:
向应用程序plist文件添加密钥,例如:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.mycompany.myapp</string>
<key>CFBundleURLScheme</key>
<array>
<string>myapp</string>
</array>
</dict>
</array>
这会向iOS注册您的应用程序处理“myapp”方案。在这里使用你自己的名字,选择一个很有可能是唯一的名字!
(2)在今日扩展视图控制器的extensionContext上调用openURL
[self extensionContext] openURL:[NSURL URLWithString:@"myapp://someurl"] completionHandler:nil];
(3)处理应用程序的Application Delegate中的调用及其handleOpenURL方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
// do something here
}
当然,这假设您已经在今天的小部件中放置了按钮,并拥有适当的处理程序来使用按钮按下并将适当的URL传递给应用程序。
您已使用Swift标记了该问题,但这些示例代码段位于Obj-C中,对不起。