iOS 10今日小部件按钮

3

iOS 10中的新Today Widgets当用户3D Touch应用程序图标时也会出现。我希望在那里添加按钮,以启动应用程序并打开特定文档(类似于Apple Music小部件)。我应该使用什么来实现这个目标?

谢谢

1个回答

4
今天的扩展有一个 NSExtensionContext 属性,可以通过 extensionContext 属性访问。ExtensionContext 有一个 openURL 方法,您可以传递一个私有 URL 来启动您的应用程序。
这是一个相当广泛的问题,因此需要提供技术的广泛概述。
(1) 在您的主应用程序中注册自定义 URL 方案,例如 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) 在你的应用程序代理中处理调用,并在其handleOpenURL方法中进行处理。

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
   // do something here
}

当然,这假定您已经在今天的小部件中放置了按钮,并且具有适当的处理程序来消耗按钮按下事件并传递适当的URL到应用程序。

您已经使用Swift标记了问题,但是这些示例片段是Obj-C编写的,对此我们感到抱歉。


太好了。我会仔细研究这个。非常感谢你。 - Tom Coomer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接