Ios sharedApplication()不';t今天在swift分机工作

Ios sharedApplication()不';t今天在swift分机工作,ios,swift,Ios,Swift,我是swift新手,我创建了一个today小部件,并在其中添加了一个按钮。在该按钮的操作中,我想在safari中启动一个url,但“sharedApplication()”不起作用,我在普通视图控制器中使用以下代码: override func viewDidLoad(){ super.viewDidLoad() UIApplication.sharedApplication().openURL(NSURL)(字符串:“facetime:mahdi@gmail.com")!) //加载视图后,

我是swift新手,我创建了一个today小部件,并在其中添加了一个按钮。在该按钮的操作中,我想在safari中启动一个url,但“sharedApplication()”不起作用,我在普通视图控制器中使用以下代码:

override func viewDidLoad(){
super.viewDidLoad()
UIApplication.sharedApplication().openURL(NSURL)(字符串:“facetime:mahdi@gmail.com")!)
//加载视图后,通常从nib执行任何其他设置。

}
这是一个。Today扩展中没有
sharedApplication()
;代码未在你的应用程序中运行。在这种特殊情况下,您可以改为与NSExtensionContext通信。

您不能从应用程序扩展中使用
sharedApplication

现在,小部件可以使用
NSExtensionContext
上的
openUrl:completionHandler:
方法打开URL,因此您可以执行以下操作:

extensionContext?.openURL(NSURL(string: "facetime:mahdi@gmail.com")!, completionHandler: nil)
不过,您应该在按钮的点击处理程序中执行此操作,而不是在
viewDidLoad

但请注意,苹果的文档说明:

重要的

苹果允许任何今天的小部件使用 openURL:completionHandler:打开小部件自身包含的 应用程序

如果您使用此方法从“今日”窗口小部件打开其他应用程序, 您的应用商店提交可能需要额外的审查以确保 符合今天的意图

要了解更多信息,请阅读应用商店审查指南和iOS手册 界面指南,链接到起始页


那么,我该怎么办呢?请在你问这样的问题浪费带宽之前。