sharedApplication()在swift中的Today Extension中不起作用

时间:2015-07-02 14:39:25

标签: ios swift

我是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.
    }

但它在今日应用扩展程序中无效。

2 个答案:

答案 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页面