我是swift的新手,我创建了一个今天的小部件,我添加了一个按钮。在该按钮的动作中,我想在safari中启动一个url,但是“sharedApplication()”不起作用,我在普通视图控制器中使用此代码:
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.sharedApplication().openURL(NSURL(string: "facetime:mahdi@gmail.com")!)
// Do any additional setup after loading the view, typically from a nib.
}
但它在今日应用扩展程序中无效。
答案 0 :(得分:1)
这是well documented。今天的扩展程序中没有sharedApplication()
;代码未在您的应用中运行。在这种特殊情况下,您可以改为与NSExtensionContext进行通信。
答案 1 :(得分:1)
您无法使用应用扩展程序中的a
。
今天的小工具可以使用sharedApplication
上的openUrl:completionHandler:
方法打开网址,因此您可以这样做:
NSExtensionContext
您应该在按钮的点击处理程序中执行此操作,而不是在extensionContext?.openURL(NSURL(string: "facetime:mahdi@gmail.com")!, completionHandler: nil)
。
但请注意苹果文档说明:
重要
Apple允许任何Today小部件使用 openURL:completionHandler:打开小部件自己包含的方法 应用
如果您使用此方法从“今日”小部件中打开其他应用, 您的App Store提交可能需要进行额外的审核以确保 符合Today小部件的意图。
要了解详情,请阅读App Store Review Guidelines和iOS Human 接口指南,链接到Apple’s App Review Support页面