iOS 10 个今日小部件按钮
iOS 10 Today Widget Buttons
在 iOS10 中,当用户 3D 触摸应用程序图标时,新的 Today Widgets 也会出现。我想在那里添加启动到应用程序并打开特定文档的按钮(类似于 Apple Music 小部件)。我应该使用什么来实现这一目标?
谢谢
今天扩展有一个 NSExtensionContext
,暴露为 属性 extensionContext。 ExtensionContext 有一个 openURL 方法,你可以传递一个私有 URL 来启动你的应用程序。
这是一个相当广泛的问题,因此提供了对该技术的广泛概述。
(1) 在您的主应用程序中注册自定义 URL 方案,例如我的应用程序:
将密钥添加到应用程序 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 中,对此感到抱歉。
在 iOS10 中,当用户 3D 触摸应用程序图标时,新的 Today Widgets 也会出现。我想在那里添加启动到应用程序并打开特定文档的按钮(类似于 Apple Music 小部件)。我应该使用什么来实现这一目标?
谢谢
今天扩展有一个 NSExtensionContext
,暴露为 属性 extensionContext。 ExtensionContext 有一个 openURL 方法,你可以传递一个私有 URL 来启动你的应用程序。
这是一个相当广泛的问题,因此提供了对该技术的广泛概述。
(1) 在您的主应用程序中注册自定义 URL 方案,例如我的应用程序:
将密钥添加到应用程序 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 中,对此感到抱歉。