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

Posted

技术标签:

【中文标题】无法从今天扩展打开主机应用程序【英文标题】: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怎么实现?

【问题讨论】:

【参考方案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 方案。

以上是关于无法从今天扩展打开主机应用程序的主要内容,如果未能解决你的问题,请参考以下文章

无法在端口 1433 上打开与主机的连接:连接失败

将 Firebase 登录信息转移到今天的扩展程序

从小部件打开主机应用程序时未调用 AppDelegate 函数(今日扩展)

iOS 应用程序组问题

从今天扩展程序打开时 iOS 应用程序崩溃

在主机应用程序和今天的扩展程序之间共享用户生成的图像的最佳方式是啥