我已经为我的应用程序+Quotes实现了一个Today小部件,它在这些Apple Docs的帮助下在通知中心内显示当天的报价。我想要完成的是打开包含的应用程序,在本例中是+Quotes,当用户在他们的Today通知视图中点击+Quotes小部件时,不完全确定如何调用它,就像Calendar在Today视图中点击它一样。我已经尝试在标签上叠加一个按钮,当它被点击时将调用-(void)openURL:(NSURL *)URL completionHandler:(void (^)(BOOL success))completionHandler
,然后打开我声明的自定义URL方案以打开包含的应用程序。问题是它没有打开包含它的应用程序。
-(IBAction)myButton:(id)sender {
NSURL *customURL = [NSURL URLWithString:@"PositiveQuotes://"];
[self openURL:customURL completionHandler:nil];
}
发布于 2014-06-18 02:55:45
另一种不添加隐藏按钮的方法是在UILabel上添加一个UITapGestureRecognizer (确保在标签上将userInteractionEnabled设置为true )。检查处理程序中的识别器状态,确保达到UIGestureReconizerStateEnded (而不是取消或失败),然后运行openUrl代码。
发布于 2017-02-16 13:29:00
为了以防万一,下面是Swift 3的版本和错误处理版本:
let myAppUrl = URL(string: "main-screen:")!
extensionContext?.open(myAppUrl, completionHandler: { (success) in
if (!success) {
print("error: failed to open app from Today Extension")
}
})
要使其正常工作,您需要打开应用程序的info.plist (作为源代码打开),然后在最上面
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
添加以下内容,这样应用程序就会知道它应该处理哪些complete example这里是如何打开包含应用程序并在应用程序和扩展之间共享用户默认设置的URL。
https://stackoverflow.com/questions/24019820
复制相似问题