无法从今天扩展打开主机应用程序
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 方案。以上是关于无法从今天扩展打开主机应用程序的主要内容,如果未能解决你的问题,请参考以下文章