如何从 iOs 中的扩展程序打开基础应用程序

How to oppen base application from extension in iOs

我正在尝试从 iMessage 应用程序打开基本应用程序,它是我的 xcode 项目(添加为目标应用程序)中的扩展。我正在使用[self.extensionContext openURL:url completionHandler::^(BOOL success) {}];

但它不起作用。 这是基本应用程序中的 info.plist

这是 info.plist 在 imessages 扩展中

我做错了什么吗?

你可以使用这个功能。

UIApplication.shared.open(url, options: [:], completionHandler: nil)

但是现在你会得到编译器错误。要修复编译器错误,请执行此操作。在扩展程序的构建设置中将 Require Only App-Extension-Safe API 设置为 NO

其实我找到了正确的答案。我正在使用 MSMessagesAppViewController 的 extensionContext 属性 从另一个 viewController 打开基本应用程序,但是 viewController 出现在 rootVC 之上。碰巧 rootVC 可以很好地打开 urls,但其他任何一个都不能。所以我只是请求我的 rootVC 使用 extensionContext 打开 url。