无法从今天扩展打开主机应用程序。

3
我已经在我的应用小部件中添加了一个按钮。在阅读了一些手册和SO建议后,我实现了他们所写的内容,但我的操作无法打开主机应用程序。这是我在主机应用程序的Info.plist文件中的制作方式
我将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”。我做错了什么以及如何修复?

我还想添加另一个按钮,在其中打开主机应用程序并执行操作。如何实现这种情况?

1个回答

6

Today Extension打开主机应用程序的方法:

1.在主机应用程序的URL Types中添加URL SchemelocalHost

enter image description here

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)")})
    }
}

4
不要使用“localhost”,因为它有点普遍,如果每个人都复制这个答案,可能会与其他应用程序发生冲突。你应该想出自己的URL方案,可能与您的捆绑标识相关。 - CMash
这只是一个例子。您需要使用更适用于应用的URL方案。 - PGDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接