【问题标题】:Can't open host app from today extension无法从今天扩展打开主机应用程序
【发布时间】:2017-05-24 10:02:04
【问题描述】:

我在我的应用小部件中添加了一个按钮。在阅读了一些手册和 SO 建议后,我已经实现了他们编写的内容,但我的操作没有打开主机应用程序。 Here's how I made in Info.plist of host app

我使 URL 标识符既完全像包标识符 (com.ol.MyList),又像 com.ol。两者都不起作用。

这是我的行动:

@IBAction func openHostApp() {
    if let url = URL(string: "localHost") {
        self.extensionContext?.open(url, completionHandler: {success in print("called url complete handler: \(success)")})
    }
}

它已编译并且不会崩溃,但completionHandler 总是为'success' 参数返回'false'。我做错了什么以及如何改正?

我还想添加另一个按钮来打开主机应用程序并在其中执行操作。那个case怎么实现?

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    Today Extension 打开主机应用程序:

    1.添加URL Scheme : localHost 到宿主应用的URL Types

    2.从extension打开host app的代码,

       @IBAction func openHostApp()
    {
        if let url = URL(string: "localHost://")
        {
            self.extensionContext?.open(url, completionHandler: {success in print("called url complete handler: \(success)")})
        }
    }
    

    【讨论】:

    • 但是不要使用'localhost',因为它有点通用,如果每个人都复制这个答案,可能会与其他应用程序发生冲突。您应该提出自己的 URL 方案,可能与您的捆绑包 ID 有关。
    • 这只是一个例子。您需要使用更特定于应用的 URL 方案。
    最近更新 更多