1

我从本教程中获得了以下关于创建 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 传递给我的主应用程序。我从这个响应创建了一个共享应用程序组,但问题是我的主应用程序使用 Firebase 来存储和更新 TableView(这只是一个 URL 列表,就像一个阅读列表)。我知道我不能在 shareExtension 中使用 Firebase(它们应该尽可能简单) - 但我无法找到其他方法。

任何帮助将不胜感激!

4

1 回答 1

-3

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

viewDidLoad 代码

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

于 2017-05-27T01:06:07.423 回答