iOS 10今日小工具按钮

时间:2016-09-06 18:26:35

标签: ios xcode8 today-extension 3dtouch

在iOS 10中,当用户3D触摸应用图标时,也会显示新的今日窗口小部件。我想添加那些启动到应用程序并打开特定文档的按钮(类似于Apple Music小部件)。我应该用什么来实现这个目标?

谢谢

1 个答案:

答案 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中,对不起。