Swift 3 - 从共享扩展共享 URL 和标题到主应用程序?

Posted

技术标签:

【中文标题】Swift 3 - 从共享扩展共享 URL 和标题到主应用程序?【英文标题】:Swift 3 - Share URL and title from share extension to main app? 【发布时间】:2017-04-04 05:26:34 【问题描述】:

我从this tutorial 获得以下关于创建 ShareExtension 的信息:

override func didSelectPost() 
        self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)

哪个使用这个javascript来获取url:

var GetURL = function() ;
GetURL.prototype = 
   run: function(arguments) 
      arguments.completionFunction("URL": document.URL);
   
;
var ExtensionPreprocessingJS = new GetURL;

我想了解如何修改 didSelectPost,以便将此 URL 传递给我的主应用程序。我从this response 创建了一个共享应用程序组,但问题是我的主应用程序使用 Firebase 来存储和更新 TableView(这只是一个 URL 列表,就像一个阅读列表)。我知道我不能在 shareExtension 中使用 Firebase(它们应该尽可能简单) - 但我无法找到其他方法。

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

在 ShareViewController 顶部创建一个变量:var url: URL?。然后,在 viewDidLoad 中添加这段代码来设置你的 url 的值:

然后,您可以尝试通过保护语句访问 didSelectPost 区域中的 url 变量:guard let successfulURL = self.url else return ,并根据需要使用successfulURL 变量。希望这会有所帮助。

【讨论】:

以上是关于Swift 3 - 从共享扩展共享 URL 和标题到主应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

将图像从 URL 保存到库,重命名并使用 Swift 共享它

如何从谷歌地图扩展共享位置 URL?

Swift Share 扩展,ALAsset 为 nil

没有 UI 的共享扩展

在 Swift 4.2 Xcode 10 中使用动作扩展从 Safari 共享 PDF 文件失败

iOS swift 使用 alamofire 在应用程序和共享扩展程序之间共享 cookie