首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >今日应用程序扩展小部件点击打开包含应用程序

今日应用程序扩展小部件点击打开包含应用程序
EN

Stack Overflow用户
提问于 2014-06-04 00:04:38
回答 2查看 40.5K关注 0票数 59

我已经为我的应用程序+Quotes实现了一个Today小部件,它在这些Apple Docs的帮助下在通知中心内显示当天的报价。我想要完成的是打开包含的应用程序,在本例中是+Quotes,当用户在他们的Today通知视图中点击+Quotes小部件时,不完全确定如何调用它,就像Calendar在Today视图中点击它一样。我已经尝试在标签上叠加一个按钮,当它被点击时将调用-(void)openURL:(NSURL *)URL completionHandler:(void (^)(BOOL success))completionHandler,然后打开我声明的自定义URL方案以打开包含的应用程序。问题是它没有打开包含它的应用程序。

代码语言:javascript
复制
-(IBAction)myButton:(id)sender {
    NSURL *customURL = [NSURL URLWithString:@"PositiveQuotes://"];
    [self openURL:customURL completionHandler:nil];
}
EN

回答 2

Stack Overflow用户

发布于 2014-06-18 02:55:45

另一种不添加隐藏按钮的方法是在UILabel上添加一个UITapGestureRecognizer (确保在标签上将userInteractionEnabled设置为true )。检查处理程序中的识别器状态,确保达到UIGestureReconizerStateEnded (而不是取消或失败),然后运行openUrl代码。

票数 3
EN

Stack Overflow用户

发布于 2017-02-16 13:29:00

为了以防万一,下面是Swift 3的版本和错误处理版本:

代码语言:javascript
复制
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 (作为源代码打开),然后在最上面

代码语言:javascript
复制
<?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。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24019820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档